{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sys import path\n",
    "import os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['/home/huang/sympy_work_code',\n",
       " '/home/huang/anaconda3/lib/python39.zip',\n",
       " '/home/huang/anaconda3/lib/python3.9',\n",
       " '/home/huang/anaconda3/lib/python3.9/lib-dynload',\n",
       " '',\n",
       " '/home/huang/.local/lib/python3.9/site-packages',\n",
       " '/home/huang/anaconda3/lib/python3.9/site-packages',\n",
       " '/home/huang/anaconda3/lib/python3.9/site-packages/IPython/extensions',\n",
       " '/home/huang/.ipython']"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# %load \"./environment.py\"\n",
    "from sympy import *\n",
    "from sympy.abc import x,y,z,t,k,l,n,m,p,q\n",
    "from sympy.calculus.util import *\n",
    "from sympy.stats import *\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "from sys import path\n",
    "path.append(\"/home/huang/Documents/packaging_tutorial/src\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "from sys import path\n",
    "path.append(\"D:\\下载\\packaging_tutorial\\src\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "%load_ext autoreload \n",
    "%autoreload 1\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "%aimport basic_package.utils\n",
    "%aimport function_calculator_package.extreme_points\n",
    "%aimport quadratic_function.utils\n",
    "%aimport quadratic_function.hyperbola\n",
    "%aimport quadratic_function.utils\n",
    "\n",
    "from basic_package.utils import *\n",
    "from function_calculator_package.extreme_points import *\n",
    "from quadratic_function.quadraticfunction import QuadraticFunction\n",
    "from quadratic_function.hyperbola import Hyperbola\n",
    "from quadratic_function.utils import line_and_quadratic\n",
    "\n",
    "%aimport solver.utils\n",
    "from solver.utils import solve_univariate_inequalities\n",
    "\n",
    "%aimport function_calculator_package.utils \n",
    "from function_calculator_package.utils import function_is_odd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "from excel_function_package.data import Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=(((k**2+2*k-1)/(1-k))**2+((2*k+1-k**2)/(1-k))**2)/(((2*k**2+3*k-1)/(1-k))**2+2*((k**2+2*k+1)/(1-k))**2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{\\frac{\\left(- k^{2} + 2 k + 1\\right)^{2}}{\\left(1 - k\\right)^{2}} + \\frac{\\left(k^{2} + 2 k - 1\\right)^{2}}{\\left(1 - k\\right)^{2}}}{\\frac{2 \\left(k^{2} + 2 k + 1\\right)^{2}}{\\left(1 - k\\right)^{2}} + \\frac{\\left(2 k^{2} + 3 k - 1\\right)^{2}}{\\left(1 - k\\right)^{2}}}$"
      ],
      "text/plain": [
       "((-k**2 + 2*k + 1)**2/(1 - k)**2 + (k**2 + 2*k - 1)**2/(1 - k)**2)/(2*(k**2 + 2*k + 1)**2/(1 - k)**2 + (2*k**2 + 3*k - 1)**2/(1 - k)**2)"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{2 \\left(k^{4} + 2 k^{2} + 1\\right)}{6 k^{4} + 20 k^{3} + 17 k^{2} + 2 k + 3}$"
      ],
      "text/plain": [
       "2*(k**4 + 2*k**2 + 1)/(6*k**4 + 20*k**3 + 17*k**2 + 2*k + 3)"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(expr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "data=Data([1,1,2,4,1,4,1,2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.range()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2.0"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.count(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.sort()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 1, 1, 1, 2, 2, 4, 4]"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=sqrt(2)*cos(2*x+5*pi/4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\sqrt{2} \\cos{\\left(2 x + \\frac{\\pi}{4} \\right)}$"
      ],
      "text/plain": [
       "-sqrt(2)*cos(2*x + pi/4)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 0$"
      ],
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr.subs(x,-3*pi/8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\sqrt{2} \\sin{\\left(2 x \\right)}$"
      ],
      "text/plain": [
       "-sqrt(2)*sin(2*x)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function_transfer(expr,x,move=3*pi/8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<sympy.plotting.plot.Plot at 0x7faf6f3f7ac0>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(expr,(x,5*pi/8,7*pi/8))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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o1WTKsL60Y9+hG9961u48MILsWDBAgwODmLr1q148cUXE7W+UT333HO47bbb8L3vfQ87duzAWWedhTVr1qCpqWnUjz9w4AAuueQSnHXWWdixYwfuuusufOMb38Dzzz+f1HWOlyiKco0cO+/URZ4lxy0iVeLsRXUqz82AxSTAF4yg1e1Xejl0FKmuNC/TjikZNoVXQxM14T2I1tZWrF+/Hr///e8xb9481NbW4pprrsGpp56ayPWN6oEHHsCNN96Im266CaIo4t5778Wrr76KBx98EHffffcxH//LX/4SpaWluPfeewEAV111FTZt2oT7778fF1544aivEQgEEAgE5D97vbEAy+PxJP4vFNfp9aPP7YFJAHJtkaS+Fo1PUVoU0cAA6prD/HdRoT2H2hANDKA0Q+S/j8qUZog40DWAnftbkTkrT+nl0DA797UiGhhARbGD142KOZ3OE09LECfI4XCIp5xyivjyyy+LoiiKr7/+upiVlSXef//9E/2SYxIIBESz2Sy+8MILoiiKotvtFgHwjW984xvf+MY3vunuze12nzAumnBG7vHHH8c111wj//miiy7Chg0bcNlll+HQoUP47W9/O9EvfUJdXV2IRCIoLIy1sjudTrjdbvz85z/HM888g48++uiYz1myZAmuvfZa3HHHHfL7PvzwQ6xevRp1dXUoKio65nOOzsi1trbi9NNPx969e1FaWpqEvxnwzIeH8JNXa3FuVT4e+nzyM5sT4fF4UFZWhubmZmRlZSm9nJS64Bcb0e4J4HefW4BLls8z5PdgOLX8LHj9Iaxc/xYA4P3vnA9XemqHmqrl+6CkE30PfvWvBjz67n58dulU3P3J+QqtMDW09rPw9We2Y2NdF75/6Rxcc3p5wr6u1r4PyZKo78PxRr1JJhzIDQ/iJKeeeio2bdqUkq5VKc0oCAKysrJgt9thsVhG/WaZzWakpaWN+H/p6bFxEllZWeP6BjudzqT9YLb4BJjs6ZhXXqT6H/7xft/0YM60QnQ2dKHNHzvH04jfg9Eo/X3Y7+6DyZ6OfKcdZUW5iq1D6e+DGoz2PVg4owimLW043A/DfH+08rNwyAuY7OlYML04KevVyvch2ZL9fUj4xNmKigq8//77if6ysry8PJjN5mNm2HV0dMhZuqMVFRWN+vEWiwW5ucr94j8ajxhSN6kD70AXjxtSEzY6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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<sympy.plotting.plot.Plot at 0x7faf58ed6850>"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(expr,1,(x,0,5*pi/2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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REREZFCGC+S+853vYP369SgoKEBJScmMXvOZz3wGkiRN+jrnnHNyO1AiIiKiHDNcIBeJRPDxj38c//Iv/5LR6y655BJ0d3erX0888USORkhERESUH4Zrwfytb30LAHD//fdn9Dq3242ampocjIiIiIhIG4bLyM3Wc889h6qqKixZsgTXXXcdent7p/3+cDiMkZGRSV9EREREemKJQG7jxo148MEH8fe//x0/+tGPsH37drz//e9HOBw+4Wu2bNkCv9+vfjU0NORxxEREREQnp4tA7tZbbz1uM8KxXzt27Jj1+1955ZW47LLLsGrVKmzatAlPPvkk9u3bh8cff/yEr7nlllsQCATUr46Ojll/PhEREVEu6KJG7otf/CKuuuqqab+nqakpa59XW1uLxsZG7N+//4Tf43a74Xa7s/aZRERERNmmi0CuoqICFRUVefu8gYEBdHR0oLa2Nm+fSURERJRtulhazUR7eztaWlrQ3t6OeDyOlpYWtLS0YHR0VP2eZcuW4bHHHgMAjI6O4uabb8a2bdvQ2tqK5557Dps2bUJFRQU+/OEPa/XXICIiIpozXWTkMvGNb3wDv/3tb9X/Xr16NQDg2Wefxfnnnw8A2Lt3LwKBAADAbrfj7bffxu9+9zsMDw+jtrYWF1xwAR5++GH4fL68j5+IiIgoWyRZlmWtB2EEIyMj8Pv9CAQCKC4u1no4RERERMZbWiUiIiIiBQM5IiIiIoPi0uoMybKMYDAIn88HSZK0Hg4RERERAzkiIiIio+LSKhEREZFBMZAjIiIiMigGckREREQGxUCOiIiIyKAYyBEREREZFAM5IiIiIoNiIEdERERkUP8/9NXG78hpXfkAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<sympy.plotting.plot.Plot at 0x7faf58b17340>"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(expr,1,(x,0,13*pi/4))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "eq=Eq(6+x**2,(2-x)**2+24)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle x^{2} + 6 = \\left(2 - x\\right)^{2} + 24$"
      ],
      "text/plain": [
       "Eq(x**2 + 6, (2 - x)**2 + 24)"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\frac{11}{2}\\right\\}$"
      ],
      "text/plain": [
       "{11/2}"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(eq,x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle x^{\\frac{8}{3}} + 8 x^{\\frac{4}{3}} + 28 + \\frac{56}{x^{4}} + \\frac{1}{x^{8}} + \\frac{56}{x^{\\frac{4}{3}}} + \\frac{70}{x^{\\frac{8}{3}}} + \\frac{28}{x^{\\frac{16}{3}}} + \\frac{8}{x^{\\frac{20}{3}}}$"
      ],
      "text/plain": [
       "x**(8/3) + 8*x**(4/3) + 28 + 56/x**4 + x**(-8) + 56/x**(4/3) + 70/x**(8/3) + 28/x**(16/3) + 8/x**(20/3)"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expand((pow(x,1/S(3))+1/x)**8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "c=Circle(x**2+y**2-4*x+3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point2D}\\left(2, 0\\right)$"
      ],
      "text/plain": [
       "Point2D(2, 0)"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c.center"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Line2D(Point2D(3, 4), Point2D(3, 5)),\n",
       " Line2D(Point2D(3, 4), Point2D(19/17, 8/17))]"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c.tangent_lines(Point(3,4))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "l1,l2=_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle x - 3$"
      ],
      "text/plain": [
       "x - 3"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "l1.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{4 \\cdot \\left(15 x - 8 y - 13\\right)}{17}$"
      ],
      "text/plain": [
       "4*(15*x - 8*y - 13)/17"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factor(l2.equation())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle k^{2} x^{2} + 4 k^{2} + 4 x \\left(k^{2} - 2\\right)$"
      ],
      "text/plain": [
       "k**2*x**2 + 4*k**2 + 4*x*(k**2 - 2)"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "line_and_quadratic(y-k*(x+2),y**2-8*x,x,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=n*(n+1)/3**n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 3^{- n} n \\left(n + 1\\right)$"
      ],
      "text/plain": [
       "n*(n + 1)/3**n"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\frac{3^{- n} \\left(- 3 \\cdot 3^{n} + 2 n + 3\\right)}{4} - \\frac{3^{- n} \\left(- 3 \\cdot 3^{n} + n^{2} + 3 n + 3\\right)}{2}$"
      ],
      "text/plain": [
       "-(-3*3**n + 2*n + 3)/(4*3**n) - (-3*3**n + n**2 + 3*n + 3)/(2*3**n)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "summation(expr,(n,1,n))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{3^{- n} \\left(3^{n + 2} - 2 n^{2} - 8 n - 9\\right)}{4}$"
      ],
      "text/plain": [
       "(3**(n + 2) - 2*n**2 - 8*n - 9)/(4*3**n)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\frac{3^{- n} \\left(- 3 \\cdot 3^{n} + 2 n + 3\\right)}{4}$"
      ],
      "text/plain": [
       "-(-3*3**n + 2*n + 3)/(4*3**n)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "summation(n/3**n,(n,1,n))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{3^{- n} \\left(3^{n + 1} - 2 n - 3\\right)}{4}$"
      ],
      "text/plain": [
       "(3**(n + 1) - 2*n - 3)/(4*3**n)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "a,b,c=symbols(\"a,b,c\",real=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=(a*n**2+b*n+c)/3**(n-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 3^{1 - n} \\left(a n^{2} + b n + c\\right)$"
      ],
      "text/plain": [
       "3**(1 - n)*(a*n**2 + b*n + c)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 3^{1 - n} \\left(a n^{2} + b n + c\\right) - 3^{- n} \\left(a \\left(n + 1\\right)^{2} + b \\left(n + 1\\right) + c\\right)$"
      ],
      "text/plain": [
       "3**(1 - n)*(a*n**2 + b*n + c) - (a*(n + 1)**2 + b*(n + 1) + c)/3**n"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr-expr.subs(n,n+1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle n \\left(- 2 \\cdot 3^{- n} a + 2 \\cdot 3^{- n} b\\right) + 2 \\cdot 3^{- n} a n^{2} - 3^{- n} a - 3^{- n} b + 2 \\cdot 3^{- n} c$"
      ],
      "text/plain": [
       "n*(-2*a/3**n + 2*b/3**n) + 2*a*n**2/3**n - a/3**n - b/3**n + 2*c/3**n"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "collect(expand(_),n)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 3^{- n} n^{2} + 3^{- n} n$"
      ],
      "text/plain": [
       "n**2/3**n + n/3**n"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "_.subs({a:1/S(2),b:1,c:3/S(4)})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{- \\frac{1}{2} - \\frac{\\sqrt{3} i}{2}, - \\frac{1}{2} + \\frac{\\sqrt{3} i}{2}\\right\\}$"
      ],
      "text/plain": [
       "{-1/2 - sqrt(3)*I/2, -1/2 + sqrt(3)*I/2}"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(x**2+x+1,x)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 孙老师改稿后的检查"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [],
   "source": [
    "e=Ellipse(Point(0,0),3*t,t)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle -1 + \\frac{x^{2}}{9 t^{2}} + \\frac{y^{2}}{t^{2}}$"
      ],
      "text/plain": [
       "-1 + x**2/(9*t**2) + y**2/t**2"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "e.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [],
   "source": [
    "c=Circle(Point(sqrt(8),0),sqrt(8))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\frac{t^{2} \\cdot \\left(9 - \\frac{x^{2}}{t^{2}}\\right)}{9}\\right\\}$"
      ],
      "text/plain": [
       "{t**2*(9 - x**2/t**2)/9}"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(e.equation(x,y),y**2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{t^{2} \\cdot \\left(9 - \\frac{x^{2}}{t^{2}}\\right)}{9} + \\left(x - 2 \\sqrt{2}\\right)^{2} - 8$"
      ],
      "text/plain": [
       "t**2*(9 - x**2/t**2)/9 + (x - 2*sqrt(2))**2 - 8"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c.equation(x,y).subs(y**2,list(_)[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [],
   "source": [
    "q=QuadraticFunction(_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 32 - \\frac{32 t^{2}}{9}$"
      ],
      "text/plain": [
       "32 - 32*t**2/9"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q.delta"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{-3, 3\\right\\}$"
      ],
      "text/plain": [
       "{-3, 3}"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(_,t)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\frac{8}{9} + \\frac{y^{2}}{t^{2}}$"
      ],
      "text/plain": [
       "-8/9 + y**2/t**2"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "e.equation(x,y).subs(x,t)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "r,d=symbols(\"r,d\",positive=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "c=Circle(Point(0,0),r)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - r^{2} + x^{2} + y^{2}$"
      ],
      "text/plain": [
       "-r**2 + x**2 + y**2"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "l=Line(Point(d,0),slope=k)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle d k - k x + y$"
      ],
      "text/plain": [
       "d*k - k*x + y"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "l.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "A,B=Intersection(l,c)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point2D}\\left(\\frac{d k - \\frac{d k}{k^{2} + 1} + \\frac{k \\sqrt{- d^{2} k^{2} + k^{2} r^{2} + r^{2}}}{k^{2} + 1}}{k}, - \\frac{d k}{k^{2} + 1} + \\frac{k \\sqrt{- d^{2} k^{2} + k^{2} r^{2} + r^{2}}}{k^{2} + 1}\\right)$"
      ],
      "text/plain": [
       "Point2D((d*k - d*k/(k**2 + 1) + k*sqrt(-d**2*k**2 + k**2*r**2 + r**2)/(k**2 + 1))/k, -d*k/(k**2 + 1) + k*sqrt(-d**2*k**2 + k**2*r**2 + r**2)/(k**2 + 1))"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point2D}\\left(\\frac{d k - \\frac{d k}{k^{2} + 1} - \\frac{k \\sqrt{- d^{2} k^{2} + k^{2} r^{2} + r^{2}}}{k^{2} + 1}}{k}, - \\frac{d k}{k^{2} + 1} - \\frac{k \\sqrt{- d^{2} k^{2} + k^{2} r^{2} + r^{2}}}{k^{2} + 1}\\right)$"
      ],
      "text/plain": [
       "Point2D((d*k - d*k/(k**2 + 1) - k*sqrt(-d**2*k**2 + k**2*r**2 + r**2)/(k**2 + 1))/k, -d*k/(k**2 + 1) - k*sqrt(-d**2*k**2 + k**2*r**2 + r**2)/(k**2 + 1))"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "B"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "C=Point(-r,0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{k \\left(- d + \\sqrt{- d^{2} k^{2} + k^{2} r^{2} + r^{2}}\\right)}{d k^{2} + k^{2} r + r + \\sqrt{- d^{2} k^{2} + k^{2} r^{2} + r^{2}}}$"
      ],
      "text/plain": [
       "k*(-d + sqrt(-d**2*k**2 + k**2*r**2 + r**2))/(d*k**2 + k**2*r + r + sqrt(-d**2*k**2 + k**2*r**2 + r**2))"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Line(A,C).slope"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\frac{k \\left(d + \\sqrt{- d^{2} k^{2} + k^{2} r^{2} + r^{2}}\\right)}{d k^{2} + k^{2} r + r - \\sqrt{- d^{2} k^{2} + k^{2} r^{2} + r^{2}}}$"
      ],
      "text/plain": [
       "-k*(d + sqrt(-d**2*k**2 + k**2*r**2 + r**2))/(d*k**2 + k**2*r + r - sqrt(-d**2*k**2 + k**2*r**2 + r**2))"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Line(B,C).slope"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\frac{k^{2} \\left(- d + \\sqrt{- d^{2} k^{2} + k^{2} r^{2} + r^{2}}\\right) \\left(d + \\sqrt{- d^{2} k^{2} + k^{2} r^{2} + r^{2}}\\right)}{\\left(d k^{2} + k^{2} r + r - \\sqrt{- d^{2} k^{2} + k^{2} r^{2} + r^{2}}\\right) \\left(d k^{2} + k^{2} r + r + \\sqrt{- d^{2} k^{2} + k^{2} r^{2} + r^{2}}\\right)}$"
      ],
      "text/plain": [
       "-k**2*(-d + sqrt(-d**2*k**2 + k**2*r**2 + r**2))*(d + sqrt(-d**2*k**2 + k**2*r**2 + r**2))/((d*k**2 + k**2*r + r - sqrt(-d**2*k**2 + k**2*r**2 + r**2))*(d*k**2 + k**2*r + r + sqrt(-d**2*k**2 + k**2*r**2 + r**2)))"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Line(B,C).slope*Line(A,C).slope"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{d - r}{d + r}$"
      ],
      "text/plain": [
       "(d - r)/(d + r)"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=2*sqrt(1-x**2/8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 2 \\sqrt{1 - \\frac{x^{2}}{8}}$"
      ],
      "text/plain": [
       "2*sqrt(1 - x**2/8)"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\frac{x}{4 \\sqrt{1 - \\frac{x^{2}}{8}}}$"
      ],
      "text/plain": [
       "-x/(4*sqrt(1 - x**2/8))"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "diff(expr,x)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2024高三第一次学业质量评价（T8l联考）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=(x+2)/(x-3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{x + 2}{x - 3}$"
      ],
      "text/plain": [
       "(x + 2)/(x - 3)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "A=solveset(expr<=0,x,Reals)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left[-2, 3\\right)$"
      ],
      "text/plain": [
       "Interval.Ropen(-2, 3)"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "B=solveset(2**x<4,x,Reals)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left(-\\infty, 2\\right)$"
      ],
      "text/plain": [
       "Interval.open(-oo, 2)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "B"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left[-2, 2\\right)$"
      ],
      "text/plain": [
       "Interval.Ropen(-2, 2)"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A&B"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "from solver.utils import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "t= symbols(\"t\",real=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 276,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{- \\frac{t}{2} + \\frac{i t}{2}\\right\\}$"
      ],
      "text/plain": [
       "{-t/2 + I*t/2}"
      ]
     },
     "execution_count": 276,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solve_complex((1-I)*z-t*I,z)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "data=Data([5,7,4,6,12,10,11,9])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.sort()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[4, 5, 6, 7, 9, 10, 11, 12]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "a,b,c=symbols(\"a,b,c\",real=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "eq=Eq((a+ln(b))*(a+2*ln(b)),(a+ln(b)/2)**2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left(a + \\log{\\left(b \\right)}\\right) \\left(a + 2 \\log{\\left(b \\right)}\\right) = \\left(a + \\frac{\\log{\\left(b \\right)}}{2}\\right)^{2}$"
      ],
      "text/plain": [
       "Eq((a + log(b))*(a + 2*log(b)), (a + log(b)/2)**2)"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\left(a + \\frac{\\log{\\left(b \\right)}}{2}\\right)^{2} + \\left(a + \\log{\\left(b \\right)}\\right) \\left(a + 2 \\log{\\left(b \\right)}\\right)$"
      ],
      "text/plain": [
       "-(a + log(b)/2)**2 + (a + log(b))*(a + 2*log(b))"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify_equation(eq,expr=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{\\left(8 a + 7 \\log{\\left(b \\right)}\\right) \\log{\\left(b \\right)}}{4}$"
      ],
      "text/plain": [
       "(8*a + 7*log(b))*log(b)/4"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{0, - \\frac{8 a}{7}\\right\\}$"
      ],
      "text/plain": [
       "{0, -8*a/7}"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(_,ln(b))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{9}{25}$"
      ],
      "text/plain": [
       "9/25"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "3**2/(binomial(5,3)+binomial(5,2)*binomial(3,2)/ff(2,2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "a,b,c=symbols(\"a,b,c\",positive=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "A,B,C=symbols(\"A,B,C\",positive=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 4 a c \\cos{\\left(B \\right)} - c^{2}$"
      ],
      "text/plain": [
       "4*a*c*cos(B) - c**2"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "4*a*c*cos(B)-c**2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "from geometry3D.cube import Cube"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "cube=Cube(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "A,B,C,D,A1,B1,C1,D1=cube.vertices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "P=t*C1+(1-t)*D1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point3D}\\left(2 t, 2, 2\\right)$"
      ],
      "text/plain": [
       "Point3D(2*t, 2, 2)"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "P"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point3D}\\left(2, 0, 0\\right)$"
      ],
      "text/plain": [
       "Point3D(2, 0, 0)"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "B"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point3D}\\left(2, 2, 0\\right)$"
      ],
      "text/plain": [
       "Point3D(2, 2, 0)"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "C"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point3D}\\left(0, 2, 0\\right)$"
      ],
      "text/plain": [
       "Point3D(0, 2, 0)"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [],
   "source": [
    "r=symbols(\"r\",real=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "R=Point(1,1,r)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point3D}\\left(1, 1, r\\right)$"
      ],
      "text/plain": [
       "Point3D(1, 1, r)"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "R"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{t^{2} - t + 1\\right\\}$"
      ],
      "text/plain": [
       "{t**2 - t + 1}"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(R.distance(P)-R.distance(B),r)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\sqrt{\\left(1 - 2 t\\right)^{2} + \\left(t^{2} - t - 1\\right)^{2} + 1}$"
      ],
      "text/plain": [
       "sqrt((1 - 2*t)**2 + (t**2 - t - 1)**2 + 1)"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "R.subs(r,t**2-t+1).distance(P)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [],
   "source": [
    "check=simplify(_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\sqrt{\\left(2 t - 1\\right)^{2} + \\left(- t^{2} + t + 1\\right)^{2} + 1}$"
      ],
      "text/plain": [
       "sqrt((2*t - 1)**2 + (-t**2 + t + 1)**2 + 1)"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "check"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left[\\frac{\\sqrt{41}}{4}, \\sqrt{3}\\right]$"
      ],
      "text/plain": [
       "Interval(sqrt(41)/4, sqrt(3))"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function_range(check,t,Interval(0,1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [],
   "source": [
    "para=Parabola(Point(0,1),Line(y+1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 286,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - x^{2} + 4 y$"
      ],
      "text/plain": [
       "-x**2 + 4*y"
      ]
     },
     "execution_count": 286,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "para.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [],
   "source": [
    "NP=Point(0,-4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 289,
   "metadata": {},
   "outputs": [],
   "source": [
    "F=para.focus"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 290,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point2D}\\left(0, 1\\right)$"
      ],
      "text/plain": [
       "Point2D(0, 1)"
      ]
     },
     "execution_count": 290,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "F"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 291,
   "metadata": {},
   "outputs": [],
   "source": [
    "l=Line(F,slope=k)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 292,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 4 k x - x^{2} + 4$"
      ],
      "text/plain": [
       "4*k*x - x**2 + 4"
      ]
     },
     "execution_count": 292,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "line_and_quadratic(l,para)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 293,
   "metadata": {},
   "outputs": [],
   "source": [
    "A,B=Intersection(l,para)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [],
   "source": [
    "c=Circle(A,B,NP)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point2D}\\left(\\frac{k \\left(16 k^{2} + 41\\right)}{10}, \\frac{2 k^{2}}{5} - \\frac{11}{10}\\right)$"
      ],
      "text/plain": [
       "Point2D(k*(16*k**2 + 41)/10, 2*k**2/5 - 11/10)"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c.center"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 298,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=(1+x**n)/(1-x**n)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 299,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{x^{n} + 1}{1 - x^{n}}$"
      ],
      "text/plain": [
       "(x**n + 1)/(1 - x**n)"
      ]
     },
     "execution_count": 299,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 300,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{n x^{n}}{x \\left(1 - x^{n}\\right)} + \\frac{n x^{n} \\left(x^{n} + 1\\right)}{x \\left(1 - x^{n}\\right)^{2}}$"
      ],
      "text/plain": [
       "n*x**n/(x*(1 - x**n)) + n*x**n*(x**n + 1)/(x*(1 - x**n)**2)"
      ]
     },
     "execution_count": 300,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "diff(expr,x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 301,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{2 n x^{n - 1}}{\\left(x^{n} - 1\\right)^{2}}$"
      ],
      "text/plain": [
       "2*n*x**(n - 1)/(x**n - 1)**2"
      ]
     },
     "execution_count": 301,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{x^{n} + 1}{x^{n} - 1}$"
      ],
      "text/plain": [
       "(x**n + 1)/(x**n - 1)"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(expr.subs(x**n,1/x**n))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{b + 1}{1 - b} + \\frac{a + 1}{1 - a}$"
      ],
      "text/plain": [
       "(b + 1)/(1 - b) + (a + 1)/(1 - a)"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr.subs(n,1).subs(x,a)+expr.subs(n,1).subs(x,b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{b^{2} + 1}{1 - b^{2}} + \\frac{a^{2} + 1}{1 - a^{2}}$"
      ],
      "text/plain": [
       "(b**2 + 1)/(1 - b**2) + (a**2 + 1)/(1 - a**2)"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr.subs(n,2).subs(x,a)+expr.subs(n,2).subs(x,b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\frac{2 \\left(a b - 1\\right) \\left(a b + 1\\right)}{\\left(a - 1\\right) \\left(a + 1\\right) \\left(b - 1\\right) \\left(b + 1\\right)}$"
      ],
      "text/plain": [
       "-2*(a*b - 1)*(a*b + 1)/((a - 1)*(a + 1)*(b - 1)*(b + 1))"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factor(_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{2}{\\left(x - 1\\right)^{2}}$"
      ],
      "text/plain": [
       "2/(x - 1)**2"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factor(diff(expr.subs(n,1),x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle y = x - 1$"
      ],
      "text/plain": [
       "Eq(y, x - 1)"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function_tangent(ln(x)/x**2,x,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [],
   "source": [
    "x1,x2=symbols(\"x1:3\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [],
   "source": [
    "eq=Eq(x1**2+8*x2**2-4*x1*x2,8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle x_{1}^{2} - 4 x_{1} x_{2} + 8 x_{2}^{2} = 8$"
      ],
      "text/plain": [
       "Eq(x1**2 - 4*x1*x2 + 8*x2**2, 8)"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle x_{1}^{2} - 4 x_{1} \\left(t - x_{1}\\right) + 8 \\left(t - x_{1}\\right)^{2} = 8$"
      ],
      "text/plain": [
       "Eq(x1**2 - 4*x1*(t - x1) + 8*(t - x1)**2, 8)"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq.subs(x2,t-x1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 8 t^{2} - 20 t x_{1} + 13 x_{1}^{2} = 8$"
      ],
      "text/plain": [
       "Eq(8*t**2 - 20*t*x1 + 13*x1**2, 8)"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expand(_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [],
   "source": [
    "checks=simplify_equation(_,expr=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 8 t^{2} - 20 t x_{1} + 13 x_{1}^{2} - 8$"
      ],
      "text/plain": [
       "8*t**2 - 20*t*x1 + 13*x1**2 - 8"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "checks"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [],
   "source": [
    "q=QuadraticFunction(checks.subs(x1,x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\frac{10 t}{13} - \\frac{2 \\sqrt{26 - t^{2}}}{13}, \\frac{10 t}{13} + \\frac{2 \\sqrt{26 - t^{2}}}{13}\\right\\}$"
      ],
      "text/plain": [
       "{10*t/13 - 2*sqrt(26 - t**2)/13, 10*t/13 + 2*sqrt(26 - t**2)/13}"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q.roots"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left[- \\frac{10 \\sqrt{26}}{13}, 4\\right]$"
      ],
      "text/plain": [
       "Interval(-10*sqrt(26)/13, 4)"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function_range(list(q.roots)[1],t,Reals)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{5\\right\\}$"
      ],
      "text/plain": [
       "{5}"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(list(q.roots)[1]-4,t)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [],
   "source": [
    "q=QuadraticFunction(checks,x=t)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 8 x^{2} - 20 x x_{1} + 13 x_{1}^{2} - 8$"
      ],
      "text/plain": [
       "8*x**2 - 20*x*x1 + 13*x1**2 - 8"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 256 - 16 x_{1}^{2}$"
      ],
      "text/plain": [
       "256 - 16*x1**2"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q.delta"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{-4, 4\\right\\}$"
      ],
      "text/plain": [
       "{-4, 4}"
      ]
     },
     "execution_count": 113,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(_,x1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{5\\right\\}$"
      ],
      "text/plain": [
       "{5}"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(q.equation(x).subs(x1,4),x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on function sequence in module sympy.series.sequences:\n",
      "\n",
      "sequence(seq, limits=None)\n",
      "    Returns appropriate sequence object.\n",
      "    \n",
      "    Explanation\n",
      "    ===========\n",
      "    \n",
      "    If ``seq`` is a SymPy sequence, returns :class:`SeqPer` object\n",
      "    otherwise returns :class:`SeqFormula` object.\n",
      "    \n",
      "    Examples\n",
      "    ========\n",
      "    \n",
      "    >>> from sympy import sequence\n",
      "    >>> from sympy.abc import n\n",
      "    >>> sequence(n**2, (n, 0, 5))\n",
      "    SeqFormula(n**2, (n, 0, 5))\n",
      "    >>> sequence((1, 2, 3), (n, 0, 5))\n",
      "    SeqPer((1, 2, 3), (n, 0, 5))\n",
      "    \n",
      "    See Also\n",
      "    ========\n",
      "    \n",
      "    sympy.series.sequences.SeqPer\n",
      "    sympy.series.sequences.SeqFormula\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(sequence)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [],
   "source": [
    "a,b,d=symbols(\"a,b,d\",real=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [],
   "source": [
    "an=sequence(a+d*n,(n,0,9))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left[a, a + d, a + 2 d, a + 3 d, \\ldots\\right]$"
      ],
      "text/plain": [
       "SeqFormula(a + d*n, (n, 0, 9))"
      ]
     },
     "execution_count": 135,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "an"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "execution_count": 136,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(list(an))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\left( 3, \\  2\\right)\\right\\}$"
      ],
      "text/plain": [
       "{(3, 2)}"
      ]
     },
     "execution_count": 137,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nonlinsolve([an[2]+an[6]-22,sum(an)-120],[a,d])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {},
   "outputs": [],
   "source": [
    "an=2*n+1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 2 n + 1$"
      ],
      "text/plain": [
       "2*n + 1"
      ]
     },
     "execution_count": 139,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "an"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=1/(sqrt(an)+sqrt(an.subs(n,n+1)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{1}{\\sqrt{2 n + 1} + \\sqrt{2 n + 3}}$"
      ],
      "text/plain": [
       "1/(sqrt(2*n + 1) + sqrt(2*n + 3))"
      ]
     },
     "execution_count": 141,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=(sqrt(2*n+3)-sqrt(2*n+1))/2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{\\sqrt{2 n + 3}}{2} - \\frac{\\sqrt{3}}{2}$"
      ],
      "text/plain": [
       "sqrt(2*n + 3)/2 - sqrt(3)/2"
      ]
     },
     "execution_count": 151,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "summation(expr,(n,1,n)).doit()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 309,
   "metadata": {},
   "outputs": [],
   "source": [
    "X=Binomial(\"X\",6,1/S(3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 310,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{0: 64/729, 1: 64/243, 2: 80/243, 3: 160/729, 4: 20/243, 5: 4/243, 6: 1/729}"
      ]
     },
     "execution_count": 310,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "density(X).dict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 311,
   "metadata": {},
   "outputs": [],
   "source": [
    "Y=Binomial(\"Y\",6,1/S(2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 312,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{0: 1/64, 1: 3/32, 2: 15/64, 3: 5/16, 4: 15/64, 5: 3/32, 6: 1/64}"
      ]
     },
     "execution_count": 312,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "density(Y).dict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 157,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy.stats import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 170,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{49}{1458}$"
      ],
      "text/plain": [
       "49/1458"
      ]
     },
     "execution_count": 170,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "P(Eq(X+Y,2))*2/S(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 313,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy.stats import P"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'P' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m/tmp/ipykernel_5133/1410134645.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mP\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mEq\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m&\u001b[0m\u001b[0mEq\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mY\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m: name 'P' is not defined"
     ]
    }
   ],
   "source": [
    "P(Eq(X,2)&Eq(Y,0))*2/3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 319,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{5}{243}$"
      ],
      "text/plain": [
       "5/243"
      ]
     },
     "execution_count": 319,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "P(Eq(X,0)&Eq(Y,2))*2/3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 318,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{2}{81}$"
      ],
      "text/plain": [
       "2/81"
      ]
     },
     "execution_count": 318,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "P(Eq(X,1)&Eq(Y,1))*2/3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 172,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "46656"
      ]
     },
     "execution_count": 172,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "6**6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 317,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{5}{972}$"
      ],
      "text/plain": [
       "5/972"
      ]
     },
     "execution_count": 317,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "S(160)/6**6/2*3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 177,
   "metadata": {},
   "outputs": [],
   "source": [
    "poly=RegularPolygon(Point(0,0),2/sqrt(3),3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 178,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Point2D(2*sqrt(3)/3, 0), Point2D(-sqrt(3)/3, 1), Point2D(-sqrt(3)/3, -1)]"
      ]
     },
     "execution_count": 178,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly.vertices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 179,
   "metadata": {},
   "outputs": [],
   "source": [
    "from geometry3D.pyramid import Pyramid"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 180,
   "metadata": {},
   "outputs": [],
   "source": [
    "pyd=Pyramid(Point(sqrt(12)/3,0,4),poly)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 181,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left( \\operatorname{Point3D}\\left(\\frac{2 \\sqrt{3}}{3}, 0, 4\\right), \\  \\operatorname{Point3D}\\left(\\frac{2 \\sqrt{3}}{3}, 0, 0\\right), \\  \\operatorname{Point3D}\\left(- \\frac{\\sqrt{3}}{3}, 1, 0\\right), \\  \\operatorname{Point3D}\\left(- \\frac{\\sqrt{3}}{3}, -1, 0\\right)\\right)$"
      ],
      "text/plain": [
       "(Point3D(2*sqrt(3)/3, 0, 4), Point3D(2*sqrt(3)/3, 0, 0), Point3D(-sqrt(3)/3, 1, 0), Point3D(-sqrt(3)/3, -1, 0))"
      ]
     },
     "execution_count": 181,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pyd.vertices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 182,
   "metadata": {},
   "outputs": [],
   "source": [
    "B,C,A,Pt=pyd.vertices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 183,
   "metadata": {},
   "outputs": [],
   "source": [
    "Et=(Pt+C)/2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 184,
   "metadata": {},
   "outputs": [],
   "source": [
    "F=(Pt+B)/2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 191,
   "metadata": {},
   "outputs": [],
   "source": [
    "l,=Plane(A,B,C).intersection(Plane(Et,F,A))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 192,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Line3D}\\left(\\operatorname{Point3D}\\left(- \\frac{\\sqrt{3}}{3}, 1, 0\\right), \\operatorname{Point3D}\\left(- \\frac{\\sqrt{3}}{3}, 1, 8 \\sqrt{3}\\right)\\right)$"
      ],
      "text/plain": [
       "Line3D(Point3D(-sqrt(3)/3, 1, 0), Point3D(-sqrt(3)/3, 1, 8*sqrt(3)))"
      ]
     },
     "execution_count": 192,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "l"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 193,
   "metadata": {},
   "outputs": [],
   "source": [
    "Q=Point(-1/sqrt(3),1,t)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 194,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point3D}\\left(- \\frac{\\sqrt{3}}{3}, 1, t\\right)$"
      ],
      "text/plain": [
       "Point3D(-sqrt(3)/3, 1, t)"
      ]
     },
     "execution_count": 194,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Q"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 197,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{asin}{\\left(\\frac{1}{\\sqrt{t^{2} + 4}} \\right)}$"
      ],
      "text/plain": [
       "asin(1/sqrt(t**2 + 4))"
      ]
     },
     "execution_count": 197,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Plane(A,Et,F).angle_between(Line(Q,Pt))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "hyp=Hyperbola(Point(0,0),2,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{x^{2}}{4} - y^{2} - 1$"
      ],
      "text/plain": [
       "x**2/4 - y**2 - 1"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hyp.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 200,
   "metadata": {},
   "outputs": [],
   "source": [
    "B=(-a,0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 201,
   "metadata": {},
   "outputs": [],
   "source": [
    "C=Point(a,0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 202,
   "metadata": {},
   "outputs": [],
   "source": [
    "D=hyp.arbitrary_point(t)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 203,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point2D}\\left(\\frac{2}{\\cos{\\left(t \\right)}}, \\tan{\\left(t \\right)}\\right)$"
      ],
      "text/plain": [
       "Point2D(2/cos(t), tan(t))"
      ]
     },
     "execution_count": 203,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 244,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Point2D(-a + (a/tan(t) + 2/sin(t))*(a*(a*cos(t) + 2)*tan(t)/(a**2*cos(t) + 4*a + 4*cos(t)) - 2*(a + 2*cos(t))*sin(t)/(a**2*cos(t)**2 + 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4)), a*(a*cos(t) + 2)*tan(t)/(a**2*cos(t) + 4*a + 4*cos(t)) - 2*(a + 2*cos(t))*sin(t)/(a**2*cos(t)**2 + 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4)),\n",
       " Point2D(-a + (a/tan(t) + 2/sin(t))*(a*(a*cos(t) + 2)*tan(t)/(a**2*cos(t) + 4*a + 4*cos(t)) + 2*(a + 2*cos(t))*sin(t)/(a**2*cos(t)**2 + 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4)), a*(a*cos(t) + 2)*tan(t)/(a**2*cos(t) + 4*a + 4*cos(t)) + 2*(a + 2*cos(t))*sin(t)/(a**2*cos(t)**2 + 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4))]"
      ]
     },
     "execution_count": 244,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Line(B,D).intersection(hyp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 245,
   "metadata": {},
   "outputs": [],
   "source": [
    "checks=_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 246,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point2D}\\left(- a + \\left(\\frac{a}{\\tan{\\left(t \\right)}} + \\frac{2}{\\sin{\\left(t \\right)}}\\right) \\left(\\frac{a \\left(a \\cos{\\left(t \\right)} + 2\\right) \\tan{\\left(t \\right)}}{a^{2} \\cos{\\left(t \\right)} + 4 a + 4 \\cos{\\left(t \\right)}} - \\frac{2 \\left(a + 2 \\cos{\\left(t \\right)}\\right) \\sin{\\left(t \\right)}}{a^{2} \\cos^{2}{\\left(t \\right)} + 4 a \\cos{\\left(t \\right)} - 4 \\cos^{2}{\\left(t \\right)} \\tan^{2}{\\left(t \\right)} + 4}\\right), \\frac{a \\left(a \\cos{\\left(t \\right)} + 2\\right) \\tan{\\left(t \\right)}}{a^{2} \\cos{\\left(t \\right)} + 4 a + 4 \\cos{\\left(t \\right)}} - \\frac{2 \\left(a + 2 \\cos{\\left(t \\right)}\\right) \\sin{\\left(t \\right)}}{a^{2} \\cos^{2}{\\left(t \\right)} + 4 a \\cos{\\left(t \\right)} - 4 \\cos^{2}{\\left(t \\right)} \\tan^{2}{\\left(t \\right)} + 4}\\right)$"
      ],
      "text/plain": [
       "Point2D(-a + (a/tan(t) + 2/sin(t))*(a*(a*cos(t) + 2)*tan(t)/(a**2*cos(t) + 4*a + 4*cos(t)) - 2*(a + 2*cos(t))*sin(t)/(a**2*cos(t)**2 + 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4)), a*(a*cos(t) + 2)*tan(t)/(a**2*cos(t) + 4*a + 4*cos(t)) - 2*(a + 2*cos(t))*sin(t)/(a**2*cos(t)**2 + 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4))"
      ]
     },
     "execution_count": 246,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(checks[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 247,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{2}{\\cos{\\left(t \\right)}}$"
      ],
      "text/plain": [
       "2/cos(t)"
      ]
     },
     "execution_count": 247,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(expand(simplify(checks[1]).x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 210,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\tan{\\left(t \\right)}$"
      ],
      "text/plain": [
       "tan(t)"
      ]
     },
     "execution_count": 210,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(expand(simplify(checks[1]).y))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 248,
   "metadata": {},
   "outputs": [],
   "source": [
    "E=checks[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 212,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point2D}\\left(- a + \\left(\\frac{a}{\\tan{\\left(t \\right)}} + \\frac{2}{\\sin{\\left(t \\right)}}\\right) \\left(\\frac{a \\left(a \\cos{\\left(t \\right)} + 2\\right) \\tan{\\left(t \\right)}}{a^{2} \\cos{\\left(t \\right)} + 4 a + 4 \\cos{\\left(t \\right)}} - \\frac{2 \\left(a + 2 \\cos{\\left(t \\right)}\\right) \\sin{\\left(t \\right)}}{a^{2} \\cos^{2}{\\left(t \\right)} + 4 a \\cos{\\left(t \\right)} - 4 \\cos^{2}{\\left(t \\right)} \\tan^{2}{\\left(t \\right)} + 4}\\right), \\frac{a \\left(a \\cos{\\left(t \\right)} + 2\\right) \\tan{\\left(t \\right)}}{a^{2} \\cos{\\left(t \\right)} + 4 a + 4 \\cos{\\left(t \\right)}} - \\frac{2 \\left(a + 2 \\cos{\\left(t \\right)}\\right) \\sin{\\left(t \\right)}}{a^{2} \\cos^{2}{\\left(t \\right)} + 4 a \\cos{\\left(t \\right)} - 4 \\cos^{2}{\\left(t \\right)} \\tan^{2}{\\left(t \\right)} + 4}\\right)$"
      ],
      "text/plain": [
       "Point2D(-a + (a/tan(t) + 2/sin(t))*(a*(a*cos(t) + 2)*tan(t)/(a**2*cos(t) + 4*a + 4*cos(t)) - 2*(a + 2*cos(t))*sin(t)/(a**2*cos(t)**2 + 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4)), a*(a*cos(t) + 2)*tan(t)/(a**2*cos(t) + 4*a + 4*cos(t)) - 2*(a + 2*cos(t))*sin(t)/(a**2*cos(t)**2 + 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4))"
      ]
     },
     "execution_count": 212,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "E"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 213,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Point2D(a + (-a/tan(t) + 2/sin(t))*(a*(a*cos(t) - 2)*tan(t)/(a**2*cos(t) - 4*a + 4*cos(t)) - 2*(a - 2*cos(t))*sin(t)/(a**2*cos(t)**2 - 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4)), a*(a*cos(t) - 2)*tan(t)/(a**2*cos(t) - 4*a + 4*cos(t)) - 2*(a - 2*cos(t))*sin(t)/(a**2*cos(t)**2 - 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4)),\n",
       " Point2D(a + (-a/tan(t) + 2/sin(t))*(a*(a*cos(t) - 2)*tan(t)/(a**2*cos(t) - 4*a + 4*cos(t)) + 2*(a - 2*cos(t))*sin(t)/(a**2*cos(t)**2 - 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4)), a*(a*cos(t) - 2)*tan(t)/(a**2*cos(t) - 4*a + 4*cos(t)) + 2*(a - 2*cos(t))*sin(t)/(a**2*cos(t)**2 - 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4))]"
      ]
     },
     "execution_count": 213,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Line(D,C).intersection(hyp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 214,
   "metadata": {},
   "outputs": [],
   "source": [
    "checks=_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 215,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{2}{\\cos{\\left(t \\right)}}$"
      ],
      "text/plain": [
       "2/cos(t)"
      ]
     },
     "execution_count": 215,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(checks[0].x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 218,
   "metadata": {},
   "outputs": [],
   "source": [
    "F=checks[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 219,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point2D}\\left(a + \\left(- \\frac{a}{\\tan{\\left(t \\right)}} + \\frac{2}{\\sin{\\left(t \\right)}}\\right) \\left(\\frac{a \\left(a \\cos{\\left(t \\right)} - 2\\right) \\tan{\\left(t \\right)}}{a^{2} \\cos{\\left(t \\right)} - 4 a + 4 \\cos{\\left(t \\right)}} + \\frac{2 \\left(a - 2 \\cos{\\left(t \\right)}\\right) \\sin{\\left(t \\right)}}{a^{2} \\cos^{2}{\\left(t \\right)} - 4 a \\cos{\\left(t \\right)} - 4 \\cos^{2}{\\left(t \\right)} \\tan^{2}{\\left(t \\right)} + 4}\\right), \\frac{a \\left(a \\cos{\\left(t \\right)} - 2\\right) \\tan{\\left(t \\right)}}{a^{2} \\cos{\\left(t \\right)} - 4 a + 4 \\cos{\\left(t \\right)}} + \\frac{2 \\left(a - 2 \\cos{\\left(t \\right)}\\right) \\sin{\\left(t \\right)}}{a^{2} \\cos^{2}{\\left(t \\right)} - 4 a \\cos{\\left(t \\right)} - 4 \\cos^{2}{\\left(t \\right)} \\tan^{2}{\\left(t \\right)} + 4}\\right)$"
      ],
      "text/plain": [
       "Point2D(a + (-a/tan(t) + 2/sin(t))*(a*(a*cos(t) - 2)*tan(t)/(a**2*cos(t) - 4*a + 4*cos(t)) + 2*(a - 2*cos(t))*sin(t)/(a**2*cos(t)**2 - 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4)), a*(a*cos(t) - 2)*tan(t)/(a**2*cos(t) - 4*a + 4*cos(t)) + 2*(a - 2*cos(t))*sin(t)/(a**2*cos(t)**2 - 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4))"
      ]
     },
     "execution_count": 219,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "F"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 250,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Line2D(Point2D(-a + (a/tan(t) + 2/sin(t))*(a*(a*cos(t) + 2)*tan(t)/(a**2*cos(t) + 4*a + 4*cos(t)) - 2*(a + 2*cos(t))*sin(t)/(a**2*cos(t)**2 + 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4)), a*(a*cos(t) + 2)*tan(t)/(a**2*cos(t) + 4*a + 4*cos(t)) - 2*(a + 2*cos(t))*sin(t)/(a**2*cos(t)**2 + 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4)), Point2D(2*(-2*a**2*sin(t) - a**2 - 4*a*cos(t) + 8*sin(t) - 4)/(a**2*cos(t) + 4*a + 4*cos(t)), (a**4*sin(2*t)/2 + 2*a**4*cos(t) + 4*a**3*sin(t) + 4*a**3*cos(2*t) + 12*a**3 + 48*a**2*cos(t) - 16*a*sin(t) + 16*a*cos(2*t) + 48*a - 8*sin(2*t) + 32*cos(t))/(a**2*cos(t) + 4*a + 4*cos(t))**2))]"
      ]
     },
     "execution_count": 250,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hyp.tangent_lines(E)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 251,
   "metadata": {},
   "outputs": [],
   "source": [
    "l1=_[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 252,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Line2D}\\left(\\operatorname{Point2D}\\left(- a + \\left(\\frac{a}{\\tan{\\left(t \\right)}} + \\frac{2}{\\sin{\\left(t \\right)}}\\right) \\left(\\frac{a \\left(a \\cos{\\left(t \\right)} + 2\\right) \\tan{\\left(t \\right)}}{a^{2} \\cos{\\left(t \\right)} + 4 a + 4 \\cos{\\left(t \\right)}} - \\frac{2 \\left(a + 2 \\cos{\\left(t \\right)}\\right) \\sin{\\left(t \\right)}}{a^{2} \\cos^{2}{\\left(t \\right)} + 4 a \\cos{\\left(t \\right)} - 4 \\cos^{2}{\\left(t \\right)} \\tan^{2}{\\left(t \\right)} + 4}\\right), \\frac{a \\left(a \\cos{\\left(t \\right)} + 2\\right) \\tan{\\left(t \\right)}}{a^{2} \\cos{\\left(t \\right)} + 4 a + 4 \\cos{\\left(t \\right)}} - \\frac{2 \\left(a + 2 \\cos{\\left(t \\right)}\\right) \\sin{\\left(t \\right)}}{a^{2} \\cos^{2}{\\left(t \\right)} + 4 a \\cos{\\left(t \\right)} - 4 \\cos^{2}{\\left(t \\right)} \\tan^{2}{\\left(t \\right)} + 4}\\right), \\operatorname{Point2D}\\left(\\frac{2 \\left(- 2 a^{2} \\sin{\\left(t \\right)} - a^{2} - 4 a \\cos{\\left(t \\right)} + 8 \\sin{\\left(t \\right)} - 4\\right)}{a^{2} \\cos{\\left(t \\right)} + 4 a + 4 \\cos{\\left(t \\right)}}, \\frac{\\frac{a^{4} \\sin{\\left(2 t \\right)}}{2} + 2 a^{4} \\cos{\\left(t \\right)} + 4 a^{3} \\sin{\\left(t \\right)} + 4 a^{3} \\cos{\\left(2 t \\right)} + 12 a^{3} + 48 a^{2} \\cos{\\left(t \\right)} - 16 a \\sin{\\left(t \\right)} + 16 a \\cos{\\left(2 t \\right)} + 48 a - 8 \\sin{\\left(2 t \\right)} + 32 \\cos{\\left(t \\right)}}{\\left(a^{2} \\cos{\\left(t \\right)} + 4 a + 4 \\cos{\\left(t \\right)}\\right)^{2}}\\right)\\right)$"
      ],
      "text/plain": [
       "Line2D(Point2D(-a + (a/tan(t) + 2/sin(t))*(a*(a*cos(t) + 2)*tan(t)/(a**2*cos(t) + 4*a + 4*cos(t)) - 2*(a + 2*cos(t))*sin(t)/(a**2*cos(t)**2 + 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4)), a*(a*cos(t) + 2)*tan(t)/(a**2*cos(t) + 4*a + 4*cos(t)) - 2*(a + 2*cos(t))*sin(t)/(a**2*cos(t)**2 + 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4)), Point2D(2*(-2*a**2*sin(t) - a**2 - 4*a*cos(t) + 8*sin(t) - 4)/(a**2*cos(t) + 4*a + 4*cos(t)), (a**4*sin(2*t)/2 + 2*a**4*cos(t) + 4*a**3*sin(t) + 4*a**3*cos(2*t) + 12*a**3 + 48*a**2*cos(t) - 16*a*sin(t) + 16*a*cos(2*t) + 48*a - 8*sin(2*t) + 32*cos(t))/(a**2*cos(t) + 4*a + 4*cos(t))**2))"
      ]
     },
     "execution_count": 252,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "l1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 253,
   "metadata": {},
   "outputs": [],
   "source": [
    "l2,=hyp.tangent_lines(F)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 254,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Line2D}\\left(\\operatorname{Point2D}\\left(a + \\left(- \\frac{a}{\\tan{\\left(t \\right)}} + \\frac{2}{\\sin{\\left(t \\right)}}\\right) \\left(\\frac{a \\left(a \\cos{\\left(t \\right)} - 2\\right) \\tan{\\left(t \\right)}}{a^{2} \\cos{\\left(t \\right)} - 4 a + 4 \\cos{\\left(t \\right)}} + \\frac{2 \\left(a - 2 \\cos{\\left(t \\right)}\\right) \\sin{\\left(t \\right)}}{a^{2} \\cos^{2}{\\left(t \\right)} - 4 a \\cos{\\left(t \\right)} - 4 \\cos^{2}{\\left(t \\right)} \\tan^{2}{\\left(t \\right)} + 4}\\right), \\frac{a \\left(a \\cos{\\left(t \\right)} - 2\\right) \\tan{\\left(t \\right)}}{a^{2} \\cos{\\left(t \\right)} - 4 a + 4 \\cos{\\left(t \\right)}} + \\frac{2 \\left(a - 2 \\cos{\\left(t \\right)}\\right) \\sin{\\left(t \\right)}}{a^{2} \\cos^{2}{\\left(t \\right)} - 4 a \\cos{\\left(t \\right)} - 4 \\cos^{2}{\\left(t \\right)} \\tan^{2}{\\left(t \\right)} + 4}\\right), \\operatorname{Point2D}\\left(\\frac{2 \\left(- 2 a^{2} \\sin{\\left(t \\right)} - a^{2} + 4 a \\cos{\\left(t \\right)} + 8 \\sin{\\left(t \\right)} - 4\\right)}{a^{2} \\cos{\\left(t \\right)} - 4 a + 4 \\cos{\\left(t \\right)}}, \\frac{\\frac{a^{4} \\sin{\\left(2 t \\right)}}{2} + 2 a^{4} \\cos{\\left(t \\right)} - 4 a^{3} \\sin{\\left(t \\right)} - 4 a^{3} \\cos{\\left(2 t \\right)} - 12 a^{3} + 48 a^{2} \\cos{\\left(t \\right)} + 16 a \\sin{\\left(t \\right)} - 16 a \\cos{\\left(2 t \\right)} - 48 a - 8 \\sin{\\left(2 t \\right)} + 32 \\cos{\\left(t \\right)}}{\\left(a^{2} \\cos{\\left(t \\right)} - 4 a + 4 \\cos{\\left(t \\right)}\\right)^{2}}\\right)\\right)$"
      ],
      "text/plain": [
       "Line2D(Point2D(a + (-a/tan(t) + 2/sin(t))*(a*(a*cos(t) - 2)*tan(t)/(a**2*cos(t) - 4*a + 4*cos(t)) + 2*(a - 2*cos(t))*sin(t)/(a**2*cos(t)**2 - 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4)), a*(a*cos(t) - 2)*tan(t)/(a**2*cos(t) - 4*a + 4*cos(t)) + 2*(a - 2*cos(t))*sin(t)/(a**2*cos(t)**2 - 4*a*cos(t) - 4*cos(t)**2*tan(t)**2 + 4)), Point2D(2*(-2*a**2*sin(t) - a**2 + 4*a*cos(t) + 8*sin(t) - 4)/(a**2*cos(t) - 4*a + 4*cos(t)), (a**4*sin(2*t)/2 + 2*a**4*cos(t) - 4*a**3*sin(t) - 4*a**3*cos(2*t) - 12*a**3 + 48*a**2*cos(t) + 16*a*sin(t) - 16*a*cos(2*t) - 48*a - 8*sin(2*t) + 32*cos(t))/(a**2*cos(t) - 4*a + 4*cos(t))**2))"
      ]
     },
     "execution_count": 254,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "l2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 255,
   "metadata": {},
   "outputs": [],
   "source": [
    "P,=Intersection(l1,l2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 256,
   "metadata": {},
   "outputs": [],
   "source": [
    "G=(P+D)/2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 257,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 0$"
      ],
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 257,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(G.x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 258,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{a^{2} \\tan{\\left(t \\right)}}{a^{2} - 4}$"
      ],
      "text/plain": [
       "a**2*tan(t)/(a**2 - 4)"
      ]
     },
     "execution_count": 258,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(G.y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 259,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr_g=2*ln(x)-x**2+3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 260,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - x^{2} + 2 \\log{\\left(x \\right)} + 3$"
      ],
      "text/plain": [
       "-x**2 + 2*log(x) + 3"
      ]
     },
     "execution_count": 260,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr_g"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 267,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\frac{2 \\left(x - 1\\right) \\left(x + 1\\right)}{x}$"
      ],
      "text/plain": [
       "-2*(x - 1)*(x + 1)/x"
      ]
     },
     "execution_count": 267,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factor(diff(expr_g,x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 261,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr_l=a*x+b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 262,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle a x + b$"
      ],
      "text/plain": [
       "a*x + b"
      ]
     },
     "execution_count": 262,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr_l"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 264,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=expr_g-expr_l"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 265,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - a x - b - x^{2} + 2 \\log{\\left(x \\right)} + 3$"
      ],
      "text/plain": [
       "-a*x - b - x**2 + 2*log(x) + 3"
      ]
     },
     "execution_count": 265,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 268,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\frac{a x + 2 x^{2} - 2}{x}$"
      ],
      "text/plain": [
       "-(a*x + 2*x**2 - 2)/x"
      ]
     },
     "execution_count": 268,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factor(diff(expr,x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 275,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - 2 x^{2} - x \\left(-3 + 2 \\log{\\left(2 \\right)}\\right) + 2$"
      ],
      "text/plain": [
       "-2*x**2 - x*(-3 + 2*log(2)) + 2"
      ]
     },
     "execution_count": 275,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fraction(factor(diff(expr,x)))[0].subs(a,2*ln(2)-3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2024高三第一次check"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 277,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=((x-2)**2+4)*(x**2+4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 279,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left(x^{2} + 4\\right) \\left(x^{2} - 4 x + 8\\right)$"
      ],
      "text/plain": [
       "(x**2 + 4)*(x**2 - 4*x + 8)"
      ]
     },
     "execution_count": 279,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factor(expand(expr))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 284,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 4 \\left(x - 1\\right) \\left(x^{2} - 2 x + 4\\right)$"
      ],
      "text/plain": [
       "4*(x - 1)*(x**2 - 2*x + 4)"
      ]
     },
     "execution_count": 284,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factor(diff(expr,x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 285,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 0$"
      ],
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 285,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "_.subs(x,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 283,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 12 \\left(x^{2} - 2 x + 2\\right)$"
      ],
      "text/plain": [
       "12*(x**2 - 2*x + 2)"
      ]
     },
     "execution_count": 283,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factor(diff(expr,x,2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 294,
   "metadata": {},
   "outputs": [],
   "source": [
    "l=Line(y-k*x-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 295,
   "metadata": {},
   "outputs": [],
   "source": [
    "c=Circle(Point(a,0),sqrt(a**2+4**2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 296,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - a^{2} + y^{2} + \\left(- a + x\\right)^{2} - 16$"
      ],
      "text/plain": [
       "-a**2 + y**2 + (-a + x)**2 - 16"
      ]
     },
     "execution_count": 296,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 297,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle x^{2} \\left(k^{2} + 1\\right) - 2 x \\left(a - k\\right) - 15$"
      ],
      "text/plain": [
       "x**2*(k**2 + 1) - 2*x*(a - k) - 15"
      ]
     },
     "execution_count": 297,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "line_and_quadratic(l,c)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 302,
   "metadata": {},
   "outputs": [],
   "source": [
    "P=Point(x,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 303,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\sqrt{y^{2} + \\left(x - 2\\right)^{2}} \\sqrt{y^{2} + \\left(x + 2\\right)^{2}}$"
      ],
      "text/plain": [
       "sqrt(y**2 + (x - 2)**2)*sqrt(y**2 + (x + 2)**2)"
      ]
     },
     "execution_count": 303,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "P.distance(Point(-2,0))*P.distance(Point(2,0))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 305,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle x^{4} + 2 x^{2} y^{2} - 8 x^{2} + y^{4} + 8 y^{2} + 16$"
      ],
      "text/plain": [
       "x**4 + 2*x**2*y**2 - 8*x**2 + y**4 + 8*y**2 + 16"
      ]
     },
     "execution_count": 305,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expand(_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 306,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left(x^{2} + y^{2} + 4\\right)^{2}$"
      ],
      "text/plain": [
       "(x**2 + y**2 + 4)**2"
      ]
     },
     "execution_count": 306,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factor(_+16*x**2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 307,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 8$"
      ],
      "text/plain": [
       "8"
      ]
     },
     "execution_count": 307,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "QuadraticFunction(-1/S(16),1,-7/S(4)).symmetry"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "x1,x2,y1,y2=symbols(\"x1,x2,y1,y2\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "l=Line((y-y1)-k*(x-x1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - k x + k x_{1} + y - y_{1}$"
      ],
      "text/plain": [
       "-k*x + k*x1 + y - y1"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "l.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - 8 k x \\left(k x_{1} - y_{1}\\right) + x^{2} \\cdot \\left(2 k - 1\\right) \\left(2 k + 1\\right) + 4 \\left(k^{2} x_{1}^{2} - 2 k x_{1} y_{1} + y_{1}^{2} + 1\\right)$"
      ],
      "text/plain": [
       "-8*k*x*(k*x1 - y1) + x**2*(2*k - 1)*(2*k + 1) + 4*(k**2*x1**2 - 2*k*x1*y1 + y1**2 + 1)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "line_and_quadratic(l,hyp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "q=QuadraticFunction(_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\frac{x_{1} y_{1}}{\\left(x_{1} - 2\\right) \\left(x_{1} + 2\\right)} - \\frac{\\sqrt{- x_{1}^{2} + 4 y_{1}^{2} + 4}}{x_{1}^{2} - 4}, \\frac{x_{1} y_{1}}{\\left(x_{1} - 2\\right) \\left(x_{1} + 2\\right)} + \\frac{\\sqrt{- x_{1}^{2} + 4 y_{1}^{2} + 4}}{x_{1}^{2} - 4}\\right\\}$"
      ],
      "text/plain": [
       "{x1*y1/((x1 - 2)*(x1 + 2)) - sqrt(-x1**2 + 4*y1**2 + 4)/(x1**2 - 4), x1*y1/((x1 - 2)*(x1 + 2)) + sqrt(-x1**2 + 4*y1**2 + 4)/(x1**2 - 4)}"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(q.delta,k)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "k1,k2=symbols(\"k1,k2\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle x \\left(k_{1} - k_{2}\\right) - \\left(k_{1} x_{1} - k_{2} x_{2} - y_{1} + y_{2}\\right)$"
      ],
      "text/plain": [
       "x*(k1 - k2) - (k1*x1 + k2*x2 + y1 - y2)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "line_and_quadratic(l.equation(x,y).subs(k,k1),l.equation(x,y).subs({x1:x2,y1:y2,k:k2}),x=x,y=y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\left( \\frac{k_{1} x_{1} - k_{2} x_{2} - y_{1} + y_{2}}{k_{1} - k_{2}}, \\  \\frac{k_{1} k_{2} x_{1} - k_{1} k_{2} x_{2} + k_{1} y_{2} - k_{2} y_{1}}{k_{1} - k_{2}}\\right)\\right\\}$"
      ],
      "text/plain": [
       "{((k1*x1 - k2*x2 - y1 + y2)/(k1 - k2), (k1*k2*x1 - k1*k2*x2 + k1*y2 - k2*y1)/(k1 - k2))}"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "linsolve([l.equation(x,y).subs(k,k1).subs(k,k1),l.equation(x,y).subs({k:k2,x1:x2,y1:y2})],[x,y])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "xp=list(_)[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left( \\frac{k_{1} x_{1} - k_{2} x_{2} - y_{1} + y_{2}}{k_{1} - k_{2}}, \\  \\frac{k_{1} k_{2} x_{1} - k_{1} k_{2} x_{2} + k_{1} y_{2} - k_{2} y_{1}}{k_{1} - k_{2}}\\right)$"
      ],
      "text/plain": [
       "((k1*x1 - k2*x2 - y1 + y2)/(k1 - k2), (k1*k2*x1 - k1*k2*x2 + k1*y2 - k2*y1)/(k1 - k2))"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{k_{1} x_{1} - k_{2} x_{2} - y_{1} + y_{2}}{k_{1} - k_{2}}$"
      ],
      "text/plain": [
       "(k1*x1 - k2*x2 - y1 + y2)/(k1 - k2)"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xp[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{\\frac{x_{1}^{2}}{4 y_{1}} - \\frac{x_{2}^{2}}{4 y_{2}} - y_{1} + y_{2}}{\\frac{x_{1}}{4 y_{1}} - \\frac{x_{2}}{4 y_{2}}}$"
      ],
      "text/plain": [
       "(x1**2/(4*y1) - x2**2/(4*y2) - y1 + y2)/(x1/(4*y1) - x2/(4*y2))"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xp[0].subs({k1:x1/(4*y1),k2:x2/(4*y2)})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{x_{1}^{2} y_{2} - x_{2}^{2} y_{1} + 4 y_{1} y_{2} \\left(- y_{1} + y_{2}\\right)}{x_{1} y_{2} - x_{2} y_{1}}$"
      ],
      "text/plain": [
       "(x1**2*y2 - x2**2*y1 + 4*y1*y2*(-y1 + y2))/(x1*y2 - x2*y1)"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "a,b,c=symbols(\"a,b,c\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "m=Line(x-t*y+a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\frac{a}{t} + y - \\frac{x}{t}$"
      ],
      "text/plain": [
       "-a/t + y - x/t"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - 2 a t y + y^{2} \\left(t - 2\\right) \\left(t + 2\\right) + \\left(a - 2\\right) \\left(a + 2\\right)$"
      ],
      "text/plain": [
       "-2*a*t*y + y**2*(t - 2)*(t + 2) + (a - 2)*(a + 2)"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "line_and_quadratic(m,hyp,first=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2024普通高中统一考试压轴卷T8联盟（二）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "data=Data([12,8,32,10,24,22,12,33])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.sort()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[8, 10, 12, 12, 22, 24, 32, 33]"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "22"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[4]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "para=Parabola(Point(0,1/S(4)),Line(y+1/S(4)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - x^{2} + y$"
      ],
      "text/plain": [
       "-x**2 + y"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "para.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "hyp=Hyperbola(Point(0,0),sqrt(2),2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{x^{2}}{2} - \\frac{y^{2}}{4} - 1$"
      ],
      "text/plain": [
       "x**2/2 - y**2/4 - 1"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hyp.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Line2D(Point2D(0, 0), Point2D(-sqrt(2), 2)),\n",
       " Line2D(Point2D(0, 0), Point2D(sqrt(2), 2))]"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hyp.asymptote"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{\\sqrt{3}}{12}$"
      ],
      "text/plain": [
       "sqrt(3)/12"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "para.focus.distance(hyp.asymptote[1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2024压轴卷（一）T8联盟"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "A=solveset(x*(2-x)>=0,x,Reals)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left[0, 2\\right]$"
      ],
      "text/plain": [
       "Interval(0, 2)"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [],
   "source": [
    "B=Interval.open(0,oo)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left(0, \\infty\\right)$"
      ],
      "text/plain": [
       "Interval.open(0, oo)"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "B"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left(-\\infty, 0\\right) \\cup \\left(0, \\infty\\right)$"
      ],
      "text/plain": [
       "Union(Interval.open(-oo, 0), Interval.open(0, oo))"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(Reals-A)|B"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=(2-I**3)/(1+I)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{\\left(1 - i\\right) \\left(2 + i\\right)}{2}$"
      ],
      "text/plain": [
       "(1 - I)*(2 + I)/2"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{\\sqrt{10}}{2}$"
      ],
      "text/plain": [
       "sqrt(10)/2"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Abs(expr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [],
   "source": [
    "c=Circle(x**2+y**2-4*x+3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle y^{2} + \\left(x - 2\\right)^{2} - 1$"
      ],
      "text/plain": [
       "y**2 + (x - 2)**2 - 1"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "para=Parabola(Point(0,1),Line(y+1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - x^{2} + 4 y$"
      ],
      "text/plain": [
       "-x**2 + 4*y"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "para.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point2D}\\left(0, 1\\right)$"
      ],
      "text/plain": [
       "Point2D(0, 1)"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "para.focus"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "eq=Eq(2*cos(x)**2,sin(x)**2+5*sin(x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 2 \\cos^{2}{\\left(x \\right)} = \\sin^{2}{\\left(x \\right)} + 5 \\sin{\\left(x \\right)}$"
      ],
      "text/plain": [
       "Eq(2*cos(x)**2, sin(x)**2 + 5*sin(x))"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 2 - 2 \\sin^{2}{\\left(x \\right)} = \\sin^{2}{\\left(x \\right)} + 5 \\sin{\\left(x \\right)}$"
      ],
      "text/plain": [
       "Eq(2 - 2*sin(x)**2, sin(x)**2 + 5*sin(x))"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq.subs(cos(x)**2,1-sin(x)**2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{-2, \\frac{1}{3}\\right\\}$"
      ],
      "text/plain": [
       "{-2, 1/3}"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(_,sin(x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{7}{9}$"
      ],
      "text/plain": [
       "7/9"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trigsimp(cos(2*asin(1/S(3))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "9**10%7"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "a,b,c=symbols(\"a,b,c\",real=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=2*x**2+b*x+c"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle b x + c + 2 x^{2}$"
      ],
      "text/plain": [
       "b*x + c + 2*x**2"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle b + c + 2$"
      ],
      "text/plain": [
       "b + c + 2"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr.subs(x,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "r=symbols(\"r\",positive=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "eq=Eq(r**2,1**2+(sqrt(3)-r)**2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle r^{2} = \\left(- r + \\sqrt{3}\\right)^{2} + 1$"
      ],
      "text/plain": [
       "Eq(r**2, (-r + sqrt(3))**2 + 1)"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\frac{2 \\sqrt{3}}{3}\\right\\}$"
      ],
      "text/plain": [
       "{2*sqrt(3)/3}"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(eq,r)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{32 \\sqrt{3} \\pi}{27}$"
      ],
      "text/plain": [
       "32*sqrt(3)*pi/27"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "4/S(3)*pi*(2/sqrt(3))**3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=(x-1)**2*cos(pi*x)-1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left(x - 1\\right)^{2} \\cos{\\left(\\pi x \\right)} - 1$"
      ],
      "text/plain": [
       "(x - 1)**2*cos(pi*x) - 1"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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43R58MrmSjz8USl6+tzISbbgpWtnITeFAyhDraOjA1arFTabDfHx8aLLISKNqGzpwg+f+xo17T0wGXT4zcLR+NFpOd95LPjHl4fwl7X74XR5MD0nEf+4ZiasFo650gIGOw2x9/bhzjd34sNd9QCA5BgTzhqdirS4KDR09GL9/ia0djkBAHMKkvG3K6ciJdYssuSIxWBHRMHS1uXEr97YgU9LvOeuk2JMOHNkCoZZo9Fkd2D9/ib/JIVzx6bjb1dOgcXEc3VawWCnMbIs442iw/jrpwdQ097znf8/Pd6M284ZiStnZkOn45k6URjsiCiYZFnG61uq8bdPD6DO9t3zdmlx3pFZl00fwfPVGsNgp1EutwdfHGzGtqp2dPT2IcliwpTsBJyenwyDnkcrRWOwI6JQ6HN7sKWiFUUVbWjtciIpxoSJI6yYW5ACk4GPBVrEYEckAIMdEREFA+M6ERERkUYw2BERERFpBIMdERERkUYw2BERERFpBIMdERERkUYw2BERERFpBIMdERERkUYw2BERERFpBIMdERERkUYw2BERERFpBIMdERERkUYw2BERERFpBIMdERERkUYw2BERERFpBIMdERERkUYw2BERERFpBIMdERERkUYw2BERERFpBIMdERERkUZIsizLoosgijSyLMNutyMuLg6SJIkuh4iINILBjoiIiEgjuBVLREREpBEMdkREREQawWBHREREpBEMdkREREQawWBHREREpBEMdkREREQawWBHREREpBH/H5MXCedd80x2AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<sympy.plotting.plot.Plot at 0x7f8b10c67700>"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(expr,(x,-2,4))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr_f=x/(x-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{x}{x - 1}$"
      ],
      "text/plain": [
       "x/(x - 1)"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr_f"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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WObPn99m//z585kwYYJFVYmI+J92tdSJiFjpjjvu4Morr2T06NGMHz+eZ555hoKCAm644QarSxMR8RtBF+oiIiL429/+RkREhNWlBAyds47TOeu4Izlnl156KaWlpdx7770UFhYydOhQPvzwQ3r37t0FlfoPfc86Tues43TOOs5fz5nmqRORoKd56kQkFCjUiUjQaxnB/1Mjx0REAplCnYiIiEgQ0OhXERERkSCgUCciIiISBPw61C1atIjzzjuPrKwsbDYbb7/99iGPnzNnDqeffjppaWnEx8czfvx45s2b1+aYF198EZvNtt+tvr6+Cz9J9+noOVuwYMEBz8f69evbHPfWW28xePBgIiIiGDx4MHPnzu3CT9G9OnrOrrrqqgOesyFDhviOCfbv2YwZMxgzZgxxcXGkp6dz4YUXsmHDhp983cKFCzn22GOJjIykb9++PPXUU/sdE6zftcM5Z6H+m3Y45yzUf9MO55yF+m/ak08+ybBhw3wTCY8fP56PPvrokK/x198yvw51NTU1DB8+nMcff7xdxy9atIjTTz+dDz/8kOXLl3PyySdz3nnnkZeX1+a4+Ph4CgsL29wiIyO74iN0u46esxYbNmxocz4GDBjge+6bb77h0ksv5corr+T777/nyiuvZMqUKXz33XedXb4lOnrOHn300TbnaseOHSQnJ3PJJZe0OS6Yv2cLFy7kpptu4ttvv2X+/Pk0NTVxxhlnUFNTc9DXbNu2jXPOOYdJkyaRl5fHn//8Z2699Vbeeust3zHB/F07nHMW6r9ph3POWoTqb9rhnLNQ/03Lzs7mgQceYNmyZSxbtoxTTjmFCy64gB9++OGAx/v1b5kRIABj7ty5HX7d4MGDjenTp/u2X3jhBSMhIaHzCvNj7TlnX3zxhQEY5eXlBz1mypQpxllnndVm35lnnmlMnTq1E6r0L4fzPZs7d65hs9mM/Px8375Q+p4ZhmEUFxcbgLFw4cKDHvOHP/zBGDRoUJt9119/vTFu3Djfdih919pzzg4klH/T2nPO9JvW1uF8z/SbZhhJSUnGc889d8Dn/Pm3zK9b6o6U1+ulqqqK5OTkNvurq6vp3bs32dnZnHvuufv9qzcUjRw5kszMTE499VS++OKLNs998803nHHGGW32nXnmmXz99dfdWaLfev755znttNP2mwg3lL5nlZWVAPv9XdvX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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<sympy.plotting.plot.Plot at 0x7f8afa2a56a0>"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(expr_f,2**x,log(x,2),(x,1.2,3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=2*sin(x)**2+t*sin(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle t \\sin{\\left(x \\right)} + 2 \\sin^{2}{\\left(x \\right)}$"
      ],
      "text/plain": [
       "t*sin(x) + 2*sin(x)**2"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{\\sqrt{3} t}{2} - \\sqrt{3}$"
      ],
      "text/plain": [
       "sqrt(3)*t/2 - sqrt(3)"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "diff(expr,x).subs(x,-pi/6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<sympy.plotting.plot.Plot at 0x7f8afa17e460>"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(expr.subs(t,2),(x,-pi,pi))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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48frKDEkaerUqbJYLLrvvvvOud6KFSvUp08fBQQEqE2bNnrnnXfqJiCqWK3Wc+6nxYsXa8CAAWrcuHHVa/Drr7+uu4AerrqvpV/99NNP8vHxUc+ePWs1F071yD/+qYaXJanrwx9r+Fs/acbKPcouKFOIv49u6tNCcyfEa81jV+lv13bQl7NeUbs2reXv76+2bdtq1qxZZsd3exyxq0datGih5557Tu3atZMkzZ07V8OHD9f69evVtWvX09ZfuXKlxowZo1deeUXDhg3ToUOHNGnSJE2cOFFLliyp6/geKT09Xe+9955iY2PPud6ePXt07bXXKjk5We+//75++ukn3XXXXWrcuHGNDNuBc/t1qrIzvY7+2w8//KABAwbo2WefVVhYmGbPnq1hw4ZpzZo16tWrV11E9VjVfS39ymazacyYMbrqqquUk5NTy+lQbnfo6805eu8/P+vnok6y9u+kEp0cGPjqLk00LDZKl3VofMrsDcNvGKGcnBzNnDlT7dq109GjR2W3nz4uHWoWxa4eGTZs2CnfP/PMM5o2bZpSU1PP+IGUmpqqmJgYTZ48WdLJ8b7uvPNOvfDCC3WS19MVFRXptttu0/Tp0/WPf/zjnOu+8847atmypV599VVJUufOnZWRkaGXXnqJYlfLioqKNHHiRElSWFjYOdf9df/86tlnn9Vnn32mpUuXUuxq0fm8ln515513atSoUfL29tann35auwE92M6jRVqUtl+frDuovJJKSZJFUkDebnUNLtK8vz+kIL/Tq0RKSopWrFih3bt3Kzw8XJIUExNTh8k9F6di6ymHw6FFixapuLhYiYmJZ1ynf//+OnjwoL766isZhqGcnBx9/PHHGjJkSB2n9Ux33323hgwZoquvvvo31129erUGDhx4yrJBgwYpIyNDlZWVtRUROrmfBg0adEHbOp1OFRYWVn0woXacz2tJkmbPnq1du3bpySefrOVknqms0qHF6w7q5ndW6eqXV2jGyj3KK6mUv6NEney7tfKRK9Uk6xO1cOacsdRJ0ueff664uDi98MILat68uTp06KA///nPKi0treNn43k4YlfPbNq0SYmJiSorK1ODBg20ZMkSdenS5Yzr9u/fXwsWLNAtt9yisrIy2e12XXfddXrjjTfqOLXnWbRokdatW6f09PRqrZ+dna0mTZqcsqxJkyay2+3Kzc1V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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<sympy.plotting.plot.Plot at 0x7f8afa0eea90>"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(expr.subs(t,2),(x,7*pi/6,3*pi/2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 355,
   "metadata": {},
   "outputs": [],
   "source": [
    "data=Data([36,26,17,23,33,106,42,31,30,35])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 356,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.sort()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 357,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "execution_count": 357,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 358,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[17, 23, 26, 30, 31, 33, 35, 36, 42, 106]"
      ]
     },
     "execution_count": 358,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 359,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "34.0"
      ]
     },
     "execution_count": 359,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(data[5]+data[6])/2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 360,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "379"
      ]
     },
     "execution_count": 360,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sum(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 256,
   "metadata": {},
   "outputs": [],
   "source": [
    "A=Point(1,1,-2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 257,
   "metadata": {},
   "outputs": [],
   "source": [
    "B=Point(2,3,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 258,
   "metadata": {},
   "outputs": [],
   "source": [
    "C=Point(1,-3,2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 259,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point3D}\\left(1, 2, 3\\right)$"
      ],
      "text/plain": [
       "Point3D(1, 2, 3)"
      ]
     },
     "execution_count": 259,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "B-A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 260,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point3D}\\left(-1, -6, 1\\right)$"
      ],
      "text/plain": [
       "Point3D(-1, -6, 1)"
      ]
     },
     "execution_count": 260,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "C-B"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 261,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point3D}\\left(1, 1, -2\\right)$"
      ],
      "text/plain": [
       "Point3D(1, 1, -2)"
      ]
     },
     "execution_count": 261,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A-Point(0,0,0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 262,
   "metadata": {},
   "outputs": [],
   "source": [
    "p=Plane(A,B,C)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 263,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left( 20, \\  -4, \\  -4\\right)$"
      ],
      "text/plain": [
       "(20, -4, -4)"
      ]
     },
     "execution_count": 263,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "p.normal_vector\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{2 \\sqrt{3}}{3}$"
      ],
      "text/plain": [
       "2*sqrt(3)/3"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "p.distance(Point(0,0,0))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [],
   "source": [
    "a=symbols(\"a\",positive=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [],
   "source": [
    "c=sqrt(1+a**2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {},
   "outputs": [],
   "source": [
    "l1=Line(y-a*(x+c))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - a x - a \\sqrt{a^{2} + 1} + y$"
      ],
      "text/plain": [
       "-a*x - a*sqrt(a**2 + 1) + y"
      ]
     },
     "execution_count": 136,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "l1.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {},
   "outputs": [],
   "source": [
    "l2=Line(y-(a+1)/(1-a)*(x-c))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{x \\left(a + 1\\right)}{a - 1} + y + \\frac{\\left(- a - 1\\right) \\sqrt{a^{2} + 1}}{a - 1}$"
      ],
      "text/plain": [
       "x*(a + 1)/(a - 1) + y + (-a - 1)*sqrt(a**2 + 1)/(a - 1)"
      ]
     },
     "execution_count": 138,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "l2.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {},
   "outputs": [],
   "source": [
    "A,=Intersection(l1,l2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point2D}\\left(\\frac{- a^{2} + 2 a + 1}{\\sqrt{a^{2} + 1}}, \\frac{2 a \\left(a + 1\\right)}{\\sqrt{a^{2} + 1}}\\right)$"
      ],
      "text/plain": [
       "Point2D((-a**2 + 2*a + 1)/sqrt(a**2 + 1), 2*a*(a + 1)/sqrt(a**2 + 1))"
      ]
     },
     "execution_count": 140,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {},
   "outputs": [],
   "source": [
    "hyp=Hyperbola(Point(0,0),a,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - y^{2} - 1 + \\frac{x^{2}}{a^{2}}$"
      ],
      "text/plain": [
       "-y**2 - 1 + x**2/a**2"
      ]
     },
     "execution_count": 142,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hyp.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\frac{4 a^{2} \\left(a + 1\\right)^{2}}{a^{2} + 1} - 1 + \\frac{\\left(- a^{2} + 2 a + 1\\right)^{2}}{a^{2} \\left(a^{2} + 1\\right)}$"
      ],
      "text/plain": [
       "-4*a**2*(a + 1)**2/(a**2 + 1) - 1 + (-a**2 + 2*a + 1)**2/(a**2*(a**2 + 1))"
      ]
     },
     "execution_count": 143,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hyp.equation(x,y).subs({x:A.x,y:A.y})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 146,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\frac{\\sqrt{2}}{2}\\right\\}$"
      ],
      "text/plain": [
       "{sqrt(2)/2}"
      ]
     },
     "execution_count": 146,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(_,a,Interval.open(0,oo))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 148,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=(x-1)*(ln(x)-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left(x - 1\\right) \\left(\\log{\\left(x \\right)} - 1\\right)$"
      ],
      "text/plain": [
       "(x - 1)*(log(x) - 1)"
      ]
     },
     "execution_count": 149,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle y = 1 - x$"
      ],
      "text/plain": [
       "Eq(y, 1 - x)"
      ]
     },
     "execution_count": 150,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function_tangent(expr,x,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{x \\log{\\left(x \\right)} - 1}{x}$"
      ],
      "text/plain": [
       "(x*log(x) - 1)/x"
      ]
     },
     "execution_count": 151,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factor(diff(expr,x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "metadata": {},
   "outputs": [],
   "source": [
    "expr_d=x*ln(x)-1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\log{\\left(x \\right)} + 1$"
      ],
      "text/plain": [
       "log(x) + 1"
      ]
     },
     "execution_count": 153,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factor(diff(expr_d,x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<sympy.plotting.plot.Plot at 0x7f8af9e6a580>"
      ]
     },
     "execution_count": 154,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(expr,(x,0.2,3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "metadata": {},
   "outputs": [],
   "source": [
    "an=2**((n-1)*(n-2)/2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 156,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 2^{\\frac{\\left(n - 2\\right) \\left(n - 1\\right)}{2}}$"
      ],
      "text/plain": [
       "2**((n - 2)*(n - 1)/2)"
      ]
     },
     "execution_count": 156,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "an"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "metadata": {},
   "outputs": [],
   "source": [
    "check=1/expand_log(log(an,2),force=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{2}{\\left(n - 2\\right) \\left(n - 1\\right)}$"
      ],
      "text/plain": [
       "2/((n - 2)*(n - 1))"
      ]
     },
     "execution_count": 161,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "check"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 162,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\frac{2}{n - 1} + \\frac{2}{n - 2}$"
      ],
      "text/plain": [
       "-2/(n - 1) + 2/(n - 2)"
      ]
     },
     "execution_count": 162,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "apart(check)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 2 - \\frac{2}{n - 1}$"
      ],
      "text/plain": [
       "2 - 2/(n - 1)"
      ]
     },
     "execution_count": 163,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "summation(_,(n,3,n))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 165,
   "metadata": {},
   "outputs": [],
   "source": [
    "from geometry3D.pyramid import Pyramid"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 264,
   "metadata": {},
   "outputs": [],
   "source": [
    "pyd=Pyramid(Point(0,0,sqrt(6)),Polygon(Point(-1,-3),Point(1,-3),Point(1,1),Point(-1,1)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 265,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left( \\operatorname{Point3D}\\left(0, 0, \\sqrt{6}\\right), \\  \\operatorname{Point3D}\\left(-1, -3, 0\\right), \\  \\operatorname{Point3D}\\left(1, -3, 0\\right), \\  \\operatorname{Point3D}\\left(1, 1, 0\\right), \\  \\operatorname{Point3D}\\left(-1, 1, 0\\right)\\right)$"
      ],
      "text/plain": [
       "(Point3D(0, 0, sqrt(6)), Point3D(-1, -3, 0), Point3D(1, -3, 0), Point3D(1, 1, 0), Point3D(-1, 1, 0))"
      ]
     },
     "execution_count": 265,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pyd.vertices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 266,
   "metadata": {},
   "outputs": [],
   "source": [
    "P,A,B,C,D=pyd.vertices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "metadata": {},
   "outputs": [],
   "source": [
    "E=(P+C)/2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 267,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left( - 4 \\sqrt{6}, \\  0, \\  -4\\right)$"
      ],
      "text/plain": [
       "(-4*sqrt(6), 0, -4)"
      ]
     },
     "execution_count": 267,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Plane(B,P,C).normal_vector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 268,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left( 0, \\  2 \\sqrt{6}, \\  2\\right)$"
      ],
      "text/plain": [
       "(0, 2*sqrt(6), 2)"
      ]
     },
     "execution_count": 268,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Plane(D,P,C).normal_vector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 175,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{acos}{\\left(- \\frac{1}{7} \\right)}$"
      ],
      "text/plain": [
       "acos(-1/7)"
      ]
     },
     "execution_count": 175,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Plane(B,P,C).perpendicular_line(B).angle_between(Plane(D,P,C).perpendicular_line(D))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{4 \\sqrt{3}}{7}$"
      ],
      "text/plain": [
       "4*sqrt(3)/7"
      ]
     },
     "execution_count": 176,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sin(_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 273,
   "metadata": {},
   "outputs": [],
   "source": [
    "e=Ellipse(Point(0,0),sqrt(2),1/sqrt(2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 274,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{x^{2}}{2} + 2 y^{2} - 1$"
      ],
      "text/plain": [
       "x**2/2 + 2*y**2 - 1"
      ]
     },
     "execution_count": 274,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "e.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 275,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\operatorname{Point2D}\\left(1, - \\frac{1}{2}\\right), \\operatorname{Point2D}\\left(1, \\frac{1}{2}\\right)\\right\\}$"
      ],
      "text/plain": [
       "{Point2D(1, -1/2), Point2D(1, 1/2)}"
      ]
     },
     "execution_count": 275,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Intersection(e,Line(x-1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 276,
   "metadata": {},
   "outputs": [],
   "source": [
    "D=list(_)[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 277,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point2D}\\left(1, \\frac{1}{2}\\right)$"
      ],
      "text/plain": [
       "Point2D(1, 1/2)"
      ]
     },
     "execution_count": 277,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 186,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{\\sqrt{5}}{2}$"
      ],
      "text/plain": [
       "sqrt(5)/2"
      ]
     },
     "execution_count": 186,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Point(0,0).distance(D)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 193,
   "metadata": {},
   "outputs": [],
   "source": [
    "k,m=symbols(\"k,m\",real=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 201,
   "metadata": {},
   "outputs": [],
   "source": [
    "a,b,c=symbols(\"a,b,c\",real=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 210,
   "metadata": {},
   "outputs": [],
   "source": [
    "l=Line(y-k*x-m)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 211,
   "metadata": {},
   "outputs": [],
   "source": [
    "A,B=Intersection(l,e)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 212,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point2D}\\left(- \\frac{- \\frac{\\sqrt{2} k \\sqrt{4 k^{2} - 2 m^{2} + 1}}{4 k^{2} + 1} + m - \\frac{m}{4 k^{2} + 1}}{k}, \\frac{\\sqrt{2} k \\sqrt{4 k^{2} - 2 m^{2} + 1}}{4 k^{2} + 1} + \\frac{m}{4 k^{2} + 1}\\right)$"
      ],
      "text/plain": [
       "Point2D(-(-sqrt(2)*k*sqrt(4*k**2 - 2*m**2 + 1)/(4*k**2 + 1) + m - m/(4*k**2 + 1))/k, sqrt(2)*k*sqrt(4*k**2 - 2*m**2 + 1)/(4*k**2 + 1) + m/(4*k**2 + 1))"
      ]
     },
     "execution_count": 212,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 213,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\operatorname{Point2D}\\left(- \\frac{\\frac{\\sqrt{2} k \\sqrt{4 k^{2} - 2 m^{2} + 1}}{4 k^{2} + 1} + m - \\frac{m}{4 k^{2} + 1}}{k}, - \\frac{\\sqrt{2} k \\sqrt{4 k^{2} - 2 m^{2} + 1}}{4 k^{2} + 1} + \\frac{m}{4 k^{2} + 1}\\right)$"
      ],
      "text/plain": [
       "Point2D(-(sqrt(2)*k*sqrt(4*k**2 - 2*m**2 + 1)/(4*k**2 + 1) + m - m/(4*k**2 + 1))/k, -sqrt(2)*k*sqrt(4*k**2 - 2*m**2 + 1)/(4*k**2 + 1) + m/(4*k**2 + 1))"
      ]
     },
     "execution_count": 213,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "B"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 221,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{2 k^{2} - k \\sqrt{8 k^{2} - 4 m^{2} + 2} - m + \\frac{1}{2}}{4 k^{2} + 4 k m - \\sqrt{2} \\sqrt{4 k^{2} - 2 m^{2} + 1} + 1} + \\frac{2 k^{2} + k \\sqrt{8 k^{2} - 4 m^{2} + 2} - m + \\frac{1}{2}}{4 k^{2} + 4 k m + \\sqrt{2} \\sqrt{4 k^{2} - 2 m^{2} + 1} + 1}$"
      ],
      "text/plain": [
       "(2*k**2 - k*sqrt(8*k**2 - 4*m**2 + 2) - m + 1/2)/(4*k**2 + 4*k*m - sqrt(2)*sqrt(4*k**2 - 2*m**2 + 1) + 1) + (2*k**2 + k*sqrt(8*k**2 - 4*m**2 + 2) - m + 1/2)/(4*k**2 + 4*k*m + sqrt(2)*sqrt(4*k**2 - 2*m**2 + 1) + 1)"
      ]
     },
     "execution_count": 221,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Line(A,D).slope+Line(B,D).slope"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 222,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left(\\left\\{- \\frac{1}{2}, \\frac{- m^{2} - \\sqrt{m^{4} - 2 m^{3} + m^{2} + 2 m - 1}}{2 m - 2}, \\frac{- m^{2} + \\sqrt{m^{4} - 2 m^{3} + m^{2} + 2 m - 1}}{2 m - 2}, \\frac{1}{2} - m\\right\\} \\cap \\left(\\left(\\mathbb{R} \\cap \\left\\{- \\frac{1}{2}, \\frac{- m^{2} - \\sqrt{m^{4} - 2 m^{3} + m^{2} + 2 m - 1}}{2 m - 2}, \\frac{- m^{2} + \\sqrt{m^{4} - 2 m^{3} + m^{2} + 2 m - 1}}{2 m - 2}, \\frac{1}{2} - m\\right\\}\\right) \\setminus \\left\\{k\\; \\middle|\\; k \\in \\left\\{\\frac{1}{2} - m, - m - \\frac{1}{2}\\right\\} \\wedge 4 k^{2} + 4 k m - \\sqrt{2} \\sqrt{4 k^{2} - 2 m^{2} + 1} + 1 = 0 \\right\\}\\right)\\right) \\setminus \\left\\{k\\; \\middle|\\; k \\in \\left\\{\\frac{1}{2} - m, - m - \\frac{1}{2}\\right\\} \\wedge 4 k^{2} + 4 k m + \\sqrt{2} \\sqrt{4 k^{2} - 2 m^{2} + 1} + 1 = 0 \\right\\}$"
      ],
      "text/plain": [
       "Complement(Intersection(Complement(Intersection({-1/2, (-m**2 - sqrt(m**4 - 2*m**3 + m**2 + 2*m - 1))/(2*m - 2), (-m**2 + sqrt(m**4 - 2*m**3 + m**2 + 2*m - 1))/(2*m - 2), 1/2 - m}, Reals), ConditionSet(k, Eq(4*k**2 + 4*k*m - sqrt(2)*sqrt(4*k**2 - 2*m**2 + 1) + 1, 0), {1/2 - m, -m - 1/2})), {-1/2, (-m**2 - sqrt(m**4 - 2*m**3 + m**2 + 2*m - 1))/(2*m - 2), (-m**2 + sqrt(m**4 - 2*m**3 + m**2 + 2*m - 1))/(2*m - 2), 1/2 - m}), ConditionSet(k, Eq(4*k**2 + 4*k*m + sqrt(2)*sqrt(4*k**2 - 2*m**2 + 1) + 1, 0), {1/2 - m, -m - 1/2}))"
      ]
     },
     "execution_count": 222,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(_-1,k,Reals)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 220,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{- \\frac{1}{2}, \\frac{- m^{2} - \\sqrt{m^{4} - 2 m^{3} + m^{2} + 2 m - 1}}{2 m - 2}, \\frac{- m^{2} + \\sqrt{m^{4} - 2 m^{3} + m^{2} + 2 m - 1}}{2 m - 2}, \\frac{1}{2} - m\\right\\} \\cap \\left(\\left(\\left\\{\\frac{i}{2}\\right\\} \\cap \\left(\\left\\{- \\frac{1}{2}, \\frac{i}{2}, \\frac{- m^{2} - \\sqrt{m^{4} - 2 m^{3} + m^{2} + 2 m - 1}}{2 m - 2}, \\frac{- m^{2} + \\sqrt{m^{4} - 2 m^{3} + m^{2} + 2 m - 1}}{2 m - 2}, \\frac{1}{2} - m\\right\\} \\setminus \\left\\{k\\; \\middle|\\; k \\in \\left\\{\\frac{i}{2}, \\frac{1}{2} - m, - m - \\frac{1}{2}\\right\\} \\wedge 4 k^{2} + 4 k m + \\sqrt{2} \\sqrt{4 k^{2} - 2 m^{2} + 1} + 1 = 0 \\right\\}\\right)\\right) \\cup \\left(\\left\\{- \\frac{i}{2}\\right\\} \\cap \\left(\\left\\{\\frac{i}{2}\\right\\} \\cup \\left(\\left\\{- \\frac{1}{2}, - \\frac{i}{2}, \\frac{- m^{2} - \\sqrt{m^{4} - 2 m^{3} + m^{2} + 2 m - 1}}{2 m - 2}, \\frac{- m^{2} + \\sqrt{m^{4} - 2 m^{3} + m^{2} + 2 m - 1}}{2 m - 2}, \\frac{1}{2} - m\\right\\} \\setminus \\left\\{k\\; \\middle|\\; k \\in \\left\\{- \\frac{i}{2}, \\frac{1}{2} - m, - m - \\frac{1}{2}\\right\\} \\wedge 4 k^{2} + 4 k m - \\sqrt{2} \\sqrt{4 k^{2} - 2 m^{2} + 1} + 1 = 0 \\right\\}\\right)\\right)\\right) \\cup \\left(\\left(\\left\\{- \\frac{1}{2}, \\frac{i}{2}, \\frac{- m^{2} - \\sqrt{m^{4} - 2 m^{3} + m^{2} + 2 m - 1}}{2 m - 2}, \\frac{- m^{2} + \\sqrt{m^{4} - 2 m^{3} + m^{2} + 2 m - 1}}{2 m - 2}, \\frac{1}{2} - m\\right\\} \\cap \\left(\\left\\{- \\frac{1}{2}, - \\frac{i}{2}, \\frac{- m^{2} - \\sqrt{m^{4} - 2 m^{3} + m^{2} + 2 m - 1}}{2 m - 2}, \\frac{- m^{2} + \\sqrt{m^{4} - 2 m^{3} + m^{2} + 2 m - 1}}{2 m - 2}, \\frac{1}{2} - m\\right\\} \\setminus \\left\\{k\\; \\middle|\\; k \\in \\left\\{- \\frac{i}{2}, \\frac{1}{2} - m, - m - \\frac{1}{2}\\right\\} \\wedge 4 k^{2} + 4 k m - \\sqrt{2} \\sqrt{4 k^{2} - 2 m^{2} + 1} + 1 = 0 \\right\\}\\right)\\right) \\setminus \\left\\{k\\; \\middle|\\; k \\in \\left\\{\\frac{i}{2}, \\frac{1}{2} - m, - m - \\frac{1}{2}\\right\\} \\wedge 4 k^{2} + 4 k m + \\sqrt{2} \\sqrt{4 k^{2} - 2 m^{2} + 1} + 1 = 0 \\right\\}\\right)\\right)$"
      ],
      "text/plain": [
       "Intersection({-1/2, (-m**2 - sqrt(m**4 - 2*m**3 + m**2 + 2*m - 1))/(2*m - 2), (-m**2 + sqrt(m**4 - 2*m**3 + m**2 + 2*m - 1))/(2*m - 2), 1/2 - m}, Union(Complement(Intersection(Complement({-1/2, -I/2, (-m**2 - sqrt(m**4 - 2*m**3 + m**2 + 2*m - 1))/(2*m - 2), (-m**2 + sqrt(m**4 - 2*m**3 + m**2 + 2*m - 1))/(2*m - 2), 1/2 - m}, ConditionSet(k, Eq(4*k**2 + 4*k*m - sqrt(2)*sqrt(4*k**2 - 2*m**2 + 1) + 1, 0), {-I/2, 1/2 - m, -m - 1/2})), {-1/2, I/2, (-m**2 - sqrt(m**4 - 2*m**3 + m**2 + 2*m - 1))/(2*m - 2), (-m**2 + sqrt(m**4 - 2*m**3 + m**2 + 2*m - 1))/(2*m - 2), 1/2 - m}), ConditionSet(k, Eq(4*k**2 + 4*k*m + sqrt(2)*sqrt(4*k**2 - 2*m**2 + 1) + 1, 0), {I/2, 1/2 - m, -m - 1/2})), Intersection({-I/2}, Union(Complement({-1/2, -I/2, (-m**2 - sqrt(m**4 - 2*m**3 + m**2 + 2*m - 1))/(2*m - 2), (-m**2 + sqrt(m**4 - 2*m**3 + m**2 + 2*m - 1))/(2*m - 2), 1/2 - m}, ConditionSet(k, Eq(4*k**2 + 4*k*m - sqrt(2)*sqrt(4*k**2 - 2*m**2 + 1) + 1, 0), {-I/2, 1/2 - m, -m - 1/2})), {I/2})), Intersection(Complement({-1/2, I/2, (-m**2 - sqrt(m**4 - 2*m**3 + m**2 + 2*m - 1))/(2*m - 2), (-m**2 + sqrt(m**4 - 2*m**3 + m**2 + 2*m - 1))/(2*m - 2), 1/2 - m}, ConditionSet(k, Eq(4*k**2 + 4*k*m + sqrt(2)*sqrt(4*k**2 - 2*m**2 + 1) + 1, 0), {I/2, 1/2 - m, -m - 1/2})), {I/2})))"
      ]
     },
     "execution_count": 220,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 223,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 8 k m x + x^{2} \\cdot \\left(4 k^{2} + 1\\right) + 2 \\cdot \\left(2 m^{2} - 1\\right)$"
      ],
      "text/plain": [
       "8*k*m*x + x**2*(4*k**2 + 1) + 2*(2*m**2 - 1)"
      ]
     },
     "execution_count": 223,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "line_and_quadratic(l,e)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 224,
   "metadata": {},
   "outputs": [],
   "source": [
    "x1,x2=QuadraticFunction(_).roots"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 225,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\frac{8 k m}{4 k^{2} + 1}$"
      ],
      "text/plain": [
       "-8*k*m/(4*k**2 + 1)"
      ]
     },
     "execution_count": 225,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x1+x2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 227,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{2 \\cdot \\left(2 m^{2} - 1\\right)}{4 k^{2} + 1}$"
      ],
      "text/plain": [
       "2*(2*m**2 - 1)/(4*k**2 + 1)"
      ]
     },
     "execution_count": 227,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(x1*x2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 269,
   "metadata": {},
   "outputs": [],
   "source": [
    "x1,x2=symbols(\"x1:3\",real=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 278,
   "metadata": {},
   "outputs": [],
   "source": [
    "y1=k*x1+m"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 279,
   "metadata": {},
   "outputs": [],
   "source": [
    "y2=k*x2+m"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 280,
   "metadata": {},
   "outputs": [],
   "source": [
    "y0=D.y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 281,
   "metadata": {},
   "outputs": [],
   "source": [
    "x0=D.x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 282,
   "metadata": {},
   "outputs": [],
   "source": [
    "k1=(y1-y0)/(x1-x0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 283,
   "metadata": {},
   "outputs": [],
   "source": [
    "k2=(y2-y0)/(x2-x0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 286,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{\\left(x_{1} - 1\\right) \\left(2 k x_{2} + 2 m - 1\\right) + \\left(x_{2} - 1\\right) \\left(2 k x_{1} + 2 m - 1\\right)}{2 \\left(x_{1} - 1\\right) \\left(x_{2} - 1\\right)}$"
      ],
      "text/plain": [
       "((x1 - 1)*(2*k*x2 + 2*m - 1) + (x2 - 1)*(2*k*x1 + 2*m - 1))/(2*(x1 - 1)*(x2 - 1))"
      ]
     },
     "execution_count": 286,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(k1+k2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 289,
   "metadata": {},
   "outputs": [],
   "source": [
    "eq=Eq(simplify(k1+k2),1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 294,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - 2 \\left(x_{1} - 1\\right) \\left(x_{2} - 1\\right) + \\left(x_{1} - 1\\right) \\left(2 k x_{2} + 2 m - 1\\right) + \\left(x_{2} - 1\\right) \\left(2 k x_{1} + 2 m - 1\\right)$"
      ],
      "text/plain": [
       "-2*(x1 - 1)*(x2 - 1) + (x1 - 1)*(2*k*x2 + 2*m - 1) + (x2 - 1)*(2*k*x1 + 2*m - 1)"
      ]
     },
     "execution_count": 294,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify_equation(eq,fraction=True,expr=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 295,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 2 k x_{1} x_{2} - k x_{1} - k x_{2} + m x_{1} + m x_{2} - 2 m - x_{1} x_{2} + \\frac{x_{1}}{2} + \\frac{x_{2}}{2}$"
      ],
      "text/plain": [
       "2*k*x1*x2 - k*x1 - k*x2 + m*x1 + m*x2 - 2*m - x1*x2 + x1/2 + x2/2"
      ]
     },
     "execution_count": 295,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expand(_)/2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 296,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{8 k^{2} m}{4 k^{2} + 1} - \\frac{8 k m^{2}}{4 k^{2} + 1} - \\frac{4 k m}{4 k^{2} + 1} + \\frac{2 k \\left(4 m^{2} - 2\\right)}{4 k^{2} + 1} - 2 m - \\frac{4 m^{2} - 2}{4 k^{2} + 1}$"
      ],
      "text/plain": [
       "8*k**2*m/(4*k**2 + 1) - 8*k*m**2/(4*k**2 + 1) - 4*k*m/(4*k**2 + 1) + 2*k*(4*m**2 - 2)/(4*k**2 + 1) - 2*m - (4*m**2 - 2)/(4*k**2 + 1)"
      ]
     },
     "execution_count": 296,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "_.subs({x1:-8*k*m/(1+4*k**2),x2:0,x1*x2:(4*m**2-2)/(1+4*k**2)})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 297,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\frac{2 \\left(m + 1\\right) \\left(2 k + 2 m - 1\\right)}{4 k^{2} + 1}$"
      ],
      "text/plain": [
       "-2*(m + 1)*(2*k + 2*m - 1)/(4*k**2 + 1)"
      ]
     },
     "execution_count": 297,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factor(simplify(_))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 299,
   "metadata": {},
   "outputs": [],
   "source": [
    "l1=Line(y-k*x+1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 300,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - k x + y + 1$"
      ],
      "text/plain": [
       "-k*x + y + 1"
      ]
     },
     "execution_count": 300,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "l1.equation()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 301,
   "metadata": {},
   "outputs": [],
   "source": [
    "A,B=Intersection(l1,e)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 303,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{2 \\sqrt{2} \\sqrt{4 k^{4} + 3 k^{2} - 1}}{4 k^{2} + 1}$"
      ],
      "text/plain": [
       "2*sqrt(2)*sqrt(4*k**4 + 3*k**2 - 1)/(4*k**2 + 1)"
      ]
     },
     "execution_count": 303,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(A.distance(B))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 242,
   "metadata": {},
   "outputs": [],
   "source": [
    "t=Triangle(A,B,Point(0,0))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 243,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\frac{\\sqrt{8 k^{2} - 2}}{4 k^{2} + 1}$"
      ],
      "text/plain": [
       "-sqrt(8*k**2 - 2)/(4*k**2 + 1)"
      ]
     },
     "execution_count": 243,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t.area"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 244,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Line2D(Point2D(0, -1), Point2D(-1, -1/2)),\n",
       " Line2D(Point2D(0, -1), Point2D(1, -1/2))]"
      ]
     },
     "execution_count": 244,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "e.tangent_lines(Point(0,-1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 245,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left(0, \\frac{1}{2}\\right]$"
      ],
      "text/plain": [
       "Interval.Lopen(0, 1/2)"
      ]
     },
     "execution_count": 245,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "function_range(-t.area,k,Interval.open(1/S(2),oo))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 246,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{- \\frac{\\sqrt{3}}{2}, \\frac{\\sqrt{3}}{2}\\right\\}$"
      ],
      "text/plain": [
       "{-sqrt(3)/2, sqrt(3)/2}"
      ]
     },
     "execution_count": 246,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(1/S(2)+t.area,k)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 249,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy.stats import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 250,
   "metadata": {},
   "outputs": [],
   "source": [
    "X=Binomial(\"X\",2,1/S(2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 254,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{3}{4}$"
      ],
      "text/plain": [
       "3/4"
      ]
     },
     "execution_count": 254,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "P(2*X-2>-2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 307,
   "metadata": {},
   "outputs": [],
   "source": [
    "from random import randint"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 308,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on method randint in module random:\n",
      "\n",
      "randint(a, b) method of random.Random instance\n",
      "    Return random integer in range [a, b], including both end points.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(randint)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 328,
   "metadata": {},
   "outputs": [],
   "source": [
    "count=[0,0]\n",
    "for i in range(1000):\n",
    "    t=randint(0,1)\n",
    "    if(t==1):\n",
    "        count[1]+=1\n",
    "    elif(t==0):\n",
    "        count[0]+=1\n",
    "        \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 329,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[483, 517]"
      ]
     },
     "execution_count": 329,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "count"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 332,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "50014\n"
     ]
    }
   ],
   "source": [
    "n=100000\n",
    "m=4\n",
    "\n",
    "count=0\n",
    "\n",
    "for i in range(n):\n",
    "    direct=0\n",
    "    stats=False\n",
    "    for j in range(m):\n",
    "        direct+=2*randint(0,1)-1\n",
    "        if(direct==-2 or direct==3):\n",
    "            stats=True\n",
    "            break\n",
    "    if(False==stats):\n",
    "       count+=1\n",
    "    \n",
    "print(count)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 335,
   "metadata": {},
   "outputs": [],
   "source": [
    "n=symbols(\"n\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 336,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 3 - 4 \\left(\\frac{3}{4}\\right)^{n + 1}$"
      ],
      "text/plain": [
       "3 - 4*(3/4)**(n + 1)"
      ]
     },
     "execution_count": 336,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "summation((3/S(4))**n,(n,1,n))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 337,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "39837\n"
     ]
    }
   ],
   "source": [
    "n=100000\n",
    "m=4\n",
    "\n",
    "count=0\n",
    "\n",
    "for i in range(n):\n",
    "    direct=0\n",
    "    stats=False\n",
    "    while(not stats):\n",
    "        direct+=2*randint(0,1)-1\n",
    "        if(direct==-2):\n",
    "            break\n",
    "        if(direct==3):\n",
    "            stats=True\n",
    "    if(stats):\n",
    "        count+=1\n",
    "    \n",
    "print(count)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
